2009-11-07 17 views
22

डीबी द्वारा मेरे पास 'fk_ownerID' नामक फ़ील्ड वाली एक तालिका है। डिफ़ॉल्ट रूप से, जब मैं एक नई टेबल पंक्ति जोड़ता हूं, तो 'fk_ownerID' खाली होता है। 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

+0

ठीक है .... खाली() करना चाहिए :) -> भिन्न होने पर गलत होता है यदि var में एक खाली और गैर-शून्य मान होता है। निम्नलिखित बातें खाली माना जाता है: "" (कोई रिक्त स्ट्रिंग) 0 (0 एक पूर्णांक के रूप में) "0" (0 स्ट्रिंग के रूप) शून्य गलत सरणी() (एक खाली सरणी) var $ var; (एक चर घोषित किया गया है, लेकिन कक्षा में मूल्य के बिना) – Steven

+3

मुझे लगता है कि 'is_null()' सुरक्षित है, क्योंकि यदि किसी चर के शून्य मान हैं तो इसे अभी भी खाली() 'माना जाता है। – Mateng

6

आप is_null() फ़ंक्शन का उपयोग कर सकते हैं।

http://php.net/manual/en/function.is-null.php: टिप्पणी में: जीमेल डॉट कॉम 20-Aug-2008 एक शून्य क्षेत्र/स्तंभ एक mySQL क्वेरी द्वारा रिटर्न के लिए 04:31 परीक्षण पर

mdufour।

कहें कि आप यह जांचना चाहते हैं कि तालिका "बार" की किसी पंक्ति से फ़ील्ड/कॉलम "foo" है, जब एक mySQL क्वेरी द्वारा लौटाया जाता है। तुम बस "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

इसके अलावा, === ऑपरेटर को न भूलें जब आप संख्याओं के साथ काम कर रहे हैं जिसका अर्थ शून्य या 0 हो सकता है या झूठी या शून्य के कुछ रूप को वापस कर सकता है जो आप खोज रहे हैं।

+2

यह सवाल का जवाब नहीं देता है। – cybermonkey

+1

मैं सहमत हूं, टिप्पणी के रूप में छोड़ दिया जाना चाहिए था। – Citizen

1
select FOUND_ROWS(); 

कोई नहीं लौटाएगा। चयन क्वेरी द्वारा चुने गए रिकॉर्ड का।

-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 ""; 
संबंधित मुद्दे