2009-11-07 16 views
22

W DB przez mam tabelę z polem o nazwie "fk_ownerID". Domyślnie, gdy dodaję nowy wiersz tabeli, "fk_ownerID" jest pusty. W Toad dla MySQL jest to pokazane jako {null}. Jeśli "fk_ownerID" ma wartość, a ja później usunę tę wartość, ustawię fk_ownerID = "".Jak sprawdzić, czy mysql wraca null/empty

Teraz mam następujący kod:

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

Teraz zmienna $ ownerid powinien mieć numer, czy nie. Ale nie jestem pewien, jak to sprawdzić. Obecnie robię to:

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

Ale jestem pewien, że tylko jeden z tych testów powinien być konieczny.

Jaki jest najlepszy sposób sprawdzenia, czy pole wiersza jest puste, czy puste?

Odpowiedz

35

Używaj empty() i/lub is_null()

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

Empty sam osiągnie swoją aktualną praktyką is_null umożliwiłoby większą kontrolę, gdybyś chciał odróżnić puste pole od pustego pola.

+1

Więc muszę używać empty() I is_null()? – Steven

+0

ok .... empty() powinno zrobić :) -> Zwraca FALSE, jeśli var ma niepustą i niezerową wartość. Następujące elementy są uważane za puste: "" (pusty łańcuch) 0 (0 a jest liczbą całkowitą) "0" (0, ponieważ łańcuch) NULL FAŁSZ tablica() (pusta tablica) var $ var; (zmienna zadeklarowana, ale bez wartości w klasie) – Steven

+3

Uważam, że 'is_null()' jest bezpieczniejsze, ponieważ jeśli zmienna ma wartość zerową, nadal jest uważana za 'pustą()'. – Mateng

6

Można użyć funkcji is_null().

http://php.net/manual/en/function.is-null.php: w komentarzach:

mdufour na gmail kropka com 20-sie-2008 04:31 Testy na NULL pola/kolumny zwróconego przez kwerendę MySQL.

Powiedzmy, że chcesz sprawdzić, czy pole/kolumna "foo" z danego wiersza tabeli "bar", gdy> zwracane przez zapytanie mySQL ma wartość null. Wystarczy użyć „is_null()” Funkcja:

[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

Nie zapomnij także o operatorze ===, gdy pracujesz z liczbami, które mogą oznaczać zero lub 0, lub zwracać jakąś formę fałszu lub wartości zerowej, która nie jest tym, czego szukasz.

+2

To nie odpowiada na pytanie. – cybermonkey

+1

Zgadzam się, powinienem był zostawić komentarz. – Citizen

1
select FOUND_ROWS(); 

zwróci nie. rekordów wybranych przez zapytanie wybrane.

-4

Załóżmy

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