Exquisiteces del PHP
Trabajando en un pequeño modulo del php, necesitaba verificar si la consulta se habia realizado correctamente.
Vale decir, que las consultas las trabajo con adoBD.php
El codigo que manejaba era:
$sql = “select * from tabla where codigo =$id”;
$rs = $db->GetRow($sql);if ( $rs == false ) die (”Consulta Fallida”);
El problema radicaba, cuando el parametro id que les pasaba no existia en mi base de datos, el codigo me mostraba siempre consulta fallida y lo que yo esperaba era el array ( $rs ) vacio .. :S
Lo que habia pasado era que al no tener datos q devolverme la consulta me entregaba un array vacio, sin embargo en el if ( $rs == false ) se trataba de comparar dos tipos de datos diferentes, por lo cual php los convertia automaticamente a un mismo tipo, en este caso supongo que boleano.
En boleano, un array vacio es false. Por lo tanto mi script se iba por el camino equivocado.
La solución, es cambiar la comparación con
if ( $rs === false ) die (”Consulta Fallida”);
Ahora, esa igualdad solo sera verdadera cuando la variable $rs contenga un tipo de dato boleano. Esto solo sucede cuando se envio una sentencia sql incorrecta, como por ejemplo haciendo un select a una tabla inexistente.