2009-11-07 14 views
22

In by DB ho una tabella con un campo chiamato 'fk_ownerID'. Per impostazione predefinita, quando aggiungo una nuova riga della tabella, "fk_ownerID" è vuoto. In Toad per MySQL, questo è mostrato come {null}. Se a "fk_ownerID" viene assegnato un valore e in seguito rimuoverò questo valore, imposto fk_ownerID = "".Come verificare se mysql restituisce null/empty

ora, ho il seguente codice:

$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"];  
    } 
} 

Ora la variabile $ ownerid dovrebbe avere un numero, oppure no. Ma non sono sicuro di come controllare questo. Attualmente sto facendo questo:

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

Ma sono abbastanza sicuro che solo uno di questi test dovrebbe essere necessario.

Qual è il modo migliore per verificare se un campo di riga è vuoto o nullo?

risposta

35

Usa vuota() e/o is_null()

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

vuoto da solo sarà raggiungere il vostro uso corrente, is_null farebbe solo più controllo possibile se volessi distinguere tra un campo nullo e un campo vuoto.

+1

quindi devo usare vuota() e is_null()? – Steven

+0

ok .... vuoto() dovrebbe fare :) -> Restituisce FALSE se var ha un valore non vuoto e diverso da zero. Le seguenti cose sono considerate vuoto: "" (una stringa vuota) 0 (0 per un numero intero) "0" (0 come stringa) NULL FALSE array() (un array vuoto) var $ var; (una variabile dichiarata, ma senza un valore in una classe) – Steven

+3

Suppongo che 'is_null()' sia più sicuro, perché se una variabile ha valore zero è ancora considerata 'empty()'. – Mateng

6

È possibile utilizzare la funzione is_null().

http://php.net/manual/en/function.is-null.php: nei commenti:

mdufour a gmail dot com 20-ago-2008 04:31 test per un campo/colonna NULL restituita da una query MySQL.

Dire di voler controllare se campo/colonna "pippo" da una data riga della tabella "barra" quando> restituito da una query mySQL è nullo. Basta usare il “is_null()” Funzione:

[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

Inoltre, non dimenticare l'operatore === quando lavori con numeri che potrebbero significare null o 0 o restituire qualche forma di falso o null che non è quello che stai cercando.

+2

Questo non risponde alla domanda. – cybermonkey

+1

Sono d'accordo, avrebbe dovuto essere lasciato come commento. – Citizen

1
select FOUND_ROWS(); 

restituirà n. dei record selezionati dalla query selezionata.

-4

Supponiamo

$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 ""; 
Problemi correlati