2009-11-07 90 views
22

在DB中,我有一個名爲'fk_ownerID'的字段的表。默認情況下,當我添加一個新的表格行時,'fk_ownerID'是空的。在Toad for MySQL中,這顯示爲{null}。如果'fk_ownerID'被賦予了一個值,我稍後刪除這個值,我設置了fk_ownerID =「」。如何檢查mysql是否返回空/空

現在,我有以下代碼:

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

現在變量$ OWNERID應該有一個數字,還是不行。但我不確定如何檢查。目前我正在這樣做:

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

但我敢肯定只有其中一個測試應該是必要的。

什麼是檢查行字段是空還是空的最佳方法?

回答

35

使用空()和/或is_null()

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

空獨自將達到目前的使用情況,is_null如果你想區分一個空的字段和一個空的字段,就可以使更多的控制成爲可能。

+1

所以我必須使用空()和is_null()? – Steven 2009-11-07 15:46:37

+0

ok .... empty()should do :) - >如果var有非空和非零值,則返回FALSE。 以下東西被認爲是空的: 「」(空字符串) 0(0作爲整數) 「0」(0作爲字符串) NULL FALSE 陣列()(空數組) var $ var; (一個聲明的變量,但沒有在類中的值) – Steven 2009-11-07 16:00:41

+3

我認爲'is_null()'更安全,因爲如果一個變量有一個零值,它仍然被認爲是'empty()'。 – Mateng 2013-04-02 15:32:45

6

您可以使用is_null()函數。

http://php.net/manual/en/function.is-null.php:在註釋:

mdufour在Gmail的點com 8月20日,2008年04:31 測試通過MySQL查詢返回NULL字段/列。

假設您希望檢查當mySQL查詢返回的> null時,表「bar」的給定行中的字段/列「foo」是否爲空。 你只需要使用「is_null()」函數:

[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

此外,不要忘記===運算符,當您使用的數字可能表示null或0或返回某種形式的false或null,而不是您要查找的內容。

+2

這不回答問題。 – cybermonkey 2014-11-16 18:23:50

+1

我同意,應該留作評論。 – Citizen 2017-04-29 20:17:53

1
select FOUND_ROWS(); 

將返回no。通過選擇查詢選擇的記錄。

-4

假設

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