2009-11-07 18 views
22

In von DB Ich habe eine Tabelle mit einem Feld namens 'fk_ownerID'. Wenn ich eine neue Tabellenzeile hinzufüge, ist die 'fk_ownerID' standardmäßig leer. In Toad for MySQL wird dies als {null} angezeigt. Wenn 'fk_ownerID' einen Wert erhält und ich diesen Wert später entferne, setze ich fk_ownerID = "".Wie überprüft man, ob mysql null/leer zurückgibt

Jetzt habe ich den folgenden Code:

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

Nun ist die Variable $ ownerID sollte eine Nummer haben, oder nicht. Aber ich bin mir nicht sicher, wie ich das überprüfen soll. Derzeit mache ich das:

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

Aber ich bin ziemlich sicher, nur einer dieser Tests sollte notwendig sein.

Wie überprüft man am besten, ob ein Zeilenfeld leer oder null ist?

Antwort

35

leer() und/oder is_null()

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

Leere allein wird Ihre aktuelle Nutzung erreichen, is_null würde nur mehr Kontrolle möglich machen, wenn Sie zwischen einem Feld, das Null ist, und einem Feld, das leer ist, unterscheiden möchten.

+1

Also muss ich leer() und is_null()? – Steven

+0

ok .... empty() sollte tun :) -> Gibt FALSE zurück, wenn var einen nicht-leeren und nicht-Null-Wert hat. die folgenden Dinge werden als leer sein: "" (ein leerer String) 0 (0 als eine ganze Zahl) "0" (0 als String) NULL FALSE Array() (ein leeres Array) var $ var; (Eine Variable deklariert, aber ohne einen Wert in einer Klasse) – Steven

+3

Ich denke, dass 'is_null()' ist sicherer, denn wenn eine Variable einen Wert von Null hat, wird sie immer noch als 'empty()' betrachtet. – Mateng

6

Sie können die Funktion is_null() verwenden.

http://php.net/manual/en/function.is-null.php: in den Kommentaren:

mdufour bei gmail dot com 20-Aug-2008 04.31 Testing für eine NULL Feld/Spalte durch eine Abfrage mySQL zurückgegeben.

Angenommen, Sie möchten prüfen, ob Feld/Spalte "foo" aus einer gegebenen Zeile der Tabelle "bar", wenn> von einer mySQL-Abfrage zurückgegeben wird, null ist. verwenden Sie einfach die „is_null()“ Funktion:

[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

Vergessen Sie auch nicht den Operator ===, wenn Sie mit Zahlen arbeiten, die null oder 0 bedeuten könnten oder eine Form von false oder null zurückgeben, die nicht das ist, wonach Sie suchen.

+2

Dies beantwortet die Frage nicht. – cybermonkey

+1

Ich stimme zu, sollte als Kommentar hinterlassen werden. – Citizen

1
select FOUND_ROWS(); 

wird keine zurückgegeben. der Datensätze, die von der ausgewählten Abfrage ausgewählt wurden.

-4

Angenommen

$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 ""; 
Verwandte Themen