Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/07/2003, 14:27
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Bienvenidos al orden de precedencia de los operadores. PHP tiene dos operados para el "o logico": OR y || (lo mismo pasa para el "y logico"). La unica diferencia entre ambos es el orden de precedencia que tienen: http://www.php.net/manual/en/languag...ors.precedence

El problema que tienes es en esta linea
Código PHP:
$coneccion mysql_connect("localhost","","") || die ("Error"); 
Como usas || lo que realmente estas haciendo es:
Código PHP:
$coneccion = (mysql_connect("localhost","","") || die ("Error")); 
Es decir, asignas a $coneccion el valor de hacer un "o logico" entre el mysql_connect() y el die() (como PHP evalua por cortocircuito solo ejecuta el die() si mysql_devuelve falso). Como aigna el "o logico", lo que asigna es TRUE o FALSE, no el valor devuelto por mysql_connect(), por eso te da error al usar $coneccion.

Si te fijas en el manual, lo que hacen es:
Código PHP:
$coneccion mysql_connect("localhost","","") OR die ("Error"); 
que es equivalente a hacer con ||:
Código PHP:
($coneccion mysql_connect("localhost","","")) || die ("Error"); 
Es decir, primero asigna el valor devuelto por mysql_connect() a $coneccion, y luego hace el "o logico" de los dos valores (otra vez por lo de cortocircuito, solo se ejecuta el die si mysql_connect() devuelve false). Como coneccion tiene ahora el valor devuelto por mysql_connect(), ahora no dara fallo al usarlo.

Ya veis como un pequeño detalle puede crear grandes problemas si no sabes donde mirar.

Recuerda: usa
Código PHP:
$coneccion mysql_connect("localhost","","") OR die ("Error"); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.