Foros del Web » Programando para Internet » PHP »

por que puede ejecutarse if(!$variable)

Estas en el tema de por que puede ejecutarse if(!$variable) en el foro de PHP en Foros del Web. Código PHP:     $sql  =  mysql_query ( "INSERT INTO " . DB_PREFIX . "downloads(sticky, dName, dDesc, dDesc2, author, email, version, thumb, sShot, sShot1, sShot2, sShot3, sShot4, sShot5, dateAdd, count, lastDown, license, url, mirror, mirror2, uploader, approved, cID, rating, times)     VALUES('0', '" . $dName . "', '" . $dDesc . "','" . $dDesc2 . "', '" . ...
  #1 (permalink)  
Antiguo 01/05/2008, 18:42
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
por que puede ejecutarse if(!$variable)

Código PHP:
    $sql mysql_query("INSERT INTO ".DB_PREFIX."downloads(sticky, dName, dDesc, dDesc2, author, email, version, thumb, sShot, sShot1, sShot2, sShot3, sShot4, sShot5, dateAdd, count, lastDown, license, url, mirror, mirror2, uploader, approved, cID, rating, times)
    VALUES('0', '"
.$dName."', '".$dDesc."','".$dDesc2."', '".$author."', '".$aemail."', '".$version."', '".$thumb."', '".$sShot."', '".$sShot1."', '".$sShot2."', '".$sShot3."', '".$sShot4."', '".$sShot5."', '".$dateAdd."', '".$count."', '".$lastDown."', '".$lID."', '".$url."', 
    '"
.$mirror1."', '".$mirror2."', '".$uID."', '".$approved."', '".$cID."','".$rating."','".$times."')");    
    

if(!
$sql){ 
hola quisiera saber porque se ejecuta este if(!$sql)

saludos
  #2 (permalink)  
Antiguo 01/05/2008, 19:05
Avatar de _cx
_cx
 
Fecha de Ingreso: diciembre-2007
Ubicación: Montevideo, Uruguay
Mensajes: 70
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: por que puede ejecutarse if(!$variable)

extraído de www.php.net/mysql_query
Código:
mysql_query() will also fail and return FALSE  if the user does not have permission to access the table(s) referenced by the query.
lo que hace eso es si la consulta retorna FALSE (!$sql) hacer algo, por ejemplo avisarle al usuario o algo.

Saludos,
Cx
  #3 (permalink)  
Antiguo 01/05/2008, 19:07
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
Re: por que puede ejecutarse if(!$variable)

lo que quiere decir basicamente es que no tengo permisos para grabar en la bd ¿?

porque podria suceder esto ?

saludos y gracias por tu respuesta
  #4 (permalink)  
Antiguo 01/05/2008, 19:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: por que puede ejecutarse if(!$variable)

Si ese if se ejecuta quiere decir que salió mal la operación... ¿por qué? ... pues puede ser por diferentes razones, desde que no tengas permisos hasta que este mal hecha la consulta...

Saludos.
  #5 (permalink)  
Antiguo 01/05/2008, 19:37
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
Re: por que puede ejecutarse if(!$variable)

gracias por la respuesta

todabia no encuentro solucion!

la consulta es esta, cual puede ser el error

Código PHP:
"INSERT INTO fmd2_downloads(sticky, dName, dDesc, author, email, version, thumb, sShot, dateAdd, count, lastDown, license, url, mirror, mirror2, uploader, approved, cID)
    VALUES('0', '$dName', '$dDesc', '$author', '$aemail', '$version', '$thumb', '$sShot', '$dateAdd', '$count', '$lastDown', '$lID', '$url', 
    '$mirror1', '$mirror2', '$uID', '$approved', '$cID')"

si lo ejecuto en sql de phpmyadmin me sale esto

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO fmd2_downloads(sticky, dName, dDesc, author, email, version, thumb,' at line 1

por favor ayuda, no encuentro el problema
  #6 (permalink)  
Antiguo 01/05/2008, 20:38
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: por que puede ejecutarse if(!$variable)

p2pdownloading:
Ademas de le que te han expresado los compañeros foristas,
if( !sql ) {
es una forma de prevenir que el script continue y es muy importante
poner algo despues de { que provoque que el script salga y no continue.
Para ser mas claro supongamos que como resultado de la consulta a la base de datos tu esperas recibir cierta informacion que depositaras en un archivo de texto para mas tarde usar la informacion para otras cosas.
Si NO pones * if(!sql) { salir...}
entonces el script continuara y abrira el archivo correspondiente y
muy probable se corrompa toda la data que ese archivo ya tenga.
Es una herramienta de programacion muy util para el optimo
funcionamiento de tu script.
De igual manera es muy util cuando utilizamos la funcion mail y
ponemos if(!mail(destino, asunto, mensaje, cabeceras)) {
aqui deseariamos poner algo que nos avise que el correo fracazo
ya que de NO ponerlo estarias asumiendo que fue enviado cuando en realidad hubo problemas.
Me atreveria a decir que debe ser la norma mas que la alternativa!, para tener
buenos scripts o codigos.
No se si me explico claramente.
Saludos
Y espero nos ayude a todos
Franco
  #7 (permalink)  
Antiguo 02/05/2008, 00:35
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: por que puede ejecutarse if(!$variable)

Por defecto MySQL Retorna un Error en caso contrario a un error en la ejecución de una consulta SQL . te creo que uses el If antes para decir si se conecta al servidor pueda ejecutar la consulta. Pero como dije anteriormente. MySQL retorna un valor false que puedes modificar lo usando mysql_query($sql) or die("ERROR"); ahora lo que yo digo es esto
Código PHP:

 
if($mysq->connectar()){
 
$mysql->SQL('SELECT * FROM empleados');
 
$mysql->imprimir();
 }
   else {
   
   echo 
'ERROR NO SE PUDO CONECTAR A LA BASE DE DATOS Y POSTERIORMENTE NO SE EJECUTO LA CONSULTA SQL ESTABLECIDA';

 } 
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #8 (permalink)  
Antiguo 02/05/2008, 06:07
p2pdownloading
Invitado
 
Mensajes: n/a
Puntos:
Re: por que puede ejecutarse if(!$variable)

hola gracias a todos por su precupacion.

ya descubri cual es el problema aunque aun no lo soluciono.

lo que sucede es que este script es un gestor de descargas y este insert en la BD proviene de un form para subir programas.

eh integrado los usuarios de phpbb3 a traves de este script http://www.forosdelweb.com/f121/logi...phpbb3-541462/ el mismo se conecta a la BD.

entonces cuando elimino el include() al script de integracion la consulta funciona.

el error creo que viene dado a raiz de que ambos scripts se conectan a la BD, pero nose porque si ambos se conectan a la misma, y los prefijos de las tablas se definen como constantes con diferente nombre

si alguien tiene alguna idea de la solucion les agradeceria la respuesta

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.