2013-04-26 108 views
-2

這裏是我的代碼中,我試圖執行我的查詢:爲什麼我的查詢失敗?

foreach ($ageGroups as $ageGroup) { 
    if ($mysqli->query("INSERT INTO national_age_gender_demographics (age_group, male_pop, female_pop, both_pop, male_percent, female_percent, both_percent, males_per_100_females) VALUES(". $ageGroup[0].", ".$ageGroup[1].", ".$ageGroup[2].", ".$ageGroup[3].", ".$ageGroup[4].", ".$ageGroup[5].", ".$ageGroup[6].", ".$ageGroup[7].")")) { 
     printf("Created row"); 
    } 
} 

$ ageGroups是包含子陣爲我表的每一行數組的數組。

那麼,你能幫我在這裏嗎?

+1

你可以問你的DBMS'mysqli_error_list()'http://php.net/manual/en/mysqli.error-list.php – Ejaz 2013-04-26 21:51:48

+2

你有錯誤信息嗎?你的錯誤處理程序在哪裏?否則,我們只是猜測。 – Kermit 2013-04-26 21:52:31

+0

通過查看生成的SQL幫助你自己,如果需要的話可以手工觸發查詢,這樣你就可以獲得交互式反饋並使用Mysql的通用查詢日誌 - 或者上述的任意組合。 – Jon 2013-04-26 21:52:35

回答

2

括上單引號的值,如:

VALUES('". $ageGroup[0]."', '".$ageGroup[1]."', '".$ageGroup[2]."', '". //etc 
+0

尼爾森是正確的。如果他們給你任何麻煩,你也可以考慮在你的sql語句中執行一個var_dump。您可能還想在調試失敗時回顯$ mysqli->錯誤。 – Kevin 2013-04-26 21:54:53

+0

那麼數據看起來對我來說是INT(male_pop,female_pop等 – 2013-04-26 21:56:07

+0

@FC)你可以在帶有MySQL的單引號中包含INT字段,沒有問題 – Nelson 2013-04-26 21:57:11