2012-12-06 37 views
0

我有一個表單,而且我有很多值。當我嘗試將這些值保存到MySQL時,它不會保存來自窗體的零值。 這是我的代碼。PHP使用時將零值(0)值保存爲MySQL錯誤

for($i=0;$i<count($cevap_deger);$i++){ 
    $cevapkontrol = trim($cevap_deger[$i]); 
    if(!empty($cevapkontrol)){ 
    $sorgu = mysql_query("insert into CRM9001(CRM9107,CRM9102,CRM9103,CRM9105,CRM9109,CRM9108) values ('".$cevap_deger[$i]."','".$sinav_id[$i]."','".$bolum_id[$i]."','".$soru_id[$i]."','".$birey_id[$i]."','".$kullanici_id[$i]."') "); 
    header("Refresh: 0; url=dashboard.php"); 
    } 
} 

它保存其他值,但只有0它不保存。我也試過這個;

for($i=0;$i<=count($cevap_deger);$i++){ 

如果你幫我,我會很高興。

+0

0索引值是否通過'if(!empty($ cevapkontrol)){'驗證? –

+0

零值爲什麼變量? – jeroen

+0

究竟發生了什麼或者不發生什麼?錯誤?不同的值?只是不做任何事情?請儘可能具體。 – deceze

回答

2

php.net說:

下面的事情被認爲是空的:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
$var; (a variable declared, but without a value) 

請注意,您將數據插入到數據庫中只有$cevapkontrolemptyif(!empty($cevapkontrol)){}和0被認爲是空的如上所述

0

0,假和其他值的負載是considered empty

請勿使用empty函數。它很糟糕,因爲它認爲各種價值觀都是空的,一個普通人不會認爲是空的。

+0

'空'不吸。 'empty'是'!isset($ var)||的縮寫$ var == false'。換句話說,這是一個正常的布爾比較,針對不存在的變量進行錯誤抑制。如果你甚至不喜歡PHP中的布爾規則,那根本就不是你的語言。 – deceze

+0

非常感謝您的快速幫助。我刪除了空功能,問題解決了。 –

+0

@deceze在大多數情況下,我不喜歡非嚴格的布爾比較,是的。被檢查的值是'trim'函數的結果。由於這是一個字符串,你可以檢查'if($ var ==='')'。這樣,你有一個強大的類型評估,確切地檢查你想要什麼,*只*你想要什麼。它消除了誤報的風險,並且它表明您實際上了解您編寫的代碼。 PHP就像Visual Basic一樣:你可以使用它編寫出色的代碼,但它使得編寫垃圾變得非常容易。我很樂意接受這個挑戰,我也嘗試說服其他人。 – GolezTrol