2009-11-07 28 views
22

En DB tengo una tabla con un campo llamado 'fk_ownerID'. De forma predeterminada, cuando agrego una nueva fila de la tabla, el 'fk_ownerID' está vacío. En Toad for MySQL, esto se muestra como {null}. Si a 'fk_ownerID' se le asigna un valor, y luego elimino este valor, configuro fk_ownerID = "".Cómo comprobar si mysql devuelve nulo/vacío

Ahora, tengo el siguiente código:

$result = $dal->getRowByValue('tableName','id', $_POST['myID']); 

// Check to see if any rows where returned 
if (mysql_num_rows($result) > 0) 
{ 
    while ($row = mysql_fetch_array($result)) 
    { 
    $ownerID = $row["fk_ownerID"];  
    } 
} 

Ahora la variable $ ID_PROPIETARIO debe tener un número, o no. Pero no estoy seguro de cómo verificar esto. Actualmente estoy haciendo esto:

if ((strlen($ownerID) == 0) || ($ownerID == '0') || ($ownerID == 'null')) 

Pero estoy bastante seguro de que solo una de estas pruebas debería ser necesaria.

¿Cuál es la mejor manera de comprobar si un campo de fila está vacío o nulo?

Respuesta

35

Uso vacía() y/o is_null()

http://www.php.net/emptyhttp://www.php.net/is_null

vacío solo logrará su uso actual, is_null simplemente haría más control posible si quisiera distinguir entre un campo que es nulo y un campo que está vacío.

+1

así que tengo que usar vacía() Y is_null()? – Steven

+0

ok .... empty() debería hacer :) -> Devuelve FALSE si var tiene un valor no vacío y distinto de cero. Las siguientes cosas se consideran ser vacío: "" (una cadena vacía) 0 (0 como un entero) "0" (0 como una cadena) NULL FALSO array() (una matriz vacía) var $ var; (una variable declarada, pero sin un valor en una clase) – Steven

+3

Creo que 'is_null()' es más seguro, porque si una variable tiene un valor cero todavía se considera 'empty()'. – Mateng

6

Puede usar la función is_null().

http://php.net/manual/en/function.is-null.php: en los comentarios:

mdufour en gmail punto com 20-Ago-2008 cuatro y treinta y un ensayo para un campo/columna NULL devuelto por una consulta de MySQL.

Supongamos que quiere comprobar si el campo/columna "foo" de una fila determinada de la tabla "barra" cuando> es devuelto por una consulta mySQL es nulo. Usted sólo tiene que utilizar el “is_null()” función:

[connect…] 
$qResult=mysql_query("Select foo from bar;"); 
while ($qValues=mysql_fetch_assoc($qResult)) 
    if (is_null($qValues["foo"])) 
     echo "No foo data!"; 
    else 
     echo "Foo data=".$qValues["foo"]; 
[…] 
1

Además, no olvide el operador === cuando trabaje con números que podrían significar nulo o 0 o devolver algún tipo de falso o nulo que no sea lo que está buscando.

+2

Esto no responde la pregunta. – cybermonkey

+1

Estoy de acuerdo, debería haber sido dejado como un comentario. – Citizen

1
select FOUND_ROWS(); 

devolverá no. de registros seleccionados por la consulta de selección.

-4

Supongamos

$row=mysql_fetch_row($rc) 
and if you want to check if row[8] is null then do 
$field=$row[8]; 
    if($field) 
echo ""; 
else 
echo ""; 
Cuestiones relacionadas