當您的查詢中有錯誤導致其失敗時,將顯示此錯誤消息。
注意:如果沒有行受到查詢的影響,則不會出現此錯誤。只有具有無效語法的查詢纔會生成此錯誤。
故障排除步驟
確保你有你的開發服務器配置爲顯示所有錯誤。你可以將它放在你的文件的頂部或者你的配置文件中:error_reporting(-1);.如果你有任何語法錯誤,這會將它們指向你。使用mysql_error()
。 mysql_error()
將報告MySQL執行查詢時遇到的任何錯誤。
使用範例:
mysql_connect($host, $username, $password) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
$sql = "SELECT * FROM table_name";
$result = mysql_query($sql);
if (false === $result) {
echo mysql_error();
}
從運行MySQL命令行或像phpMyAdmin工具查詢。如果你的查詢語法錯誤,這會告訴你它是什麼。
確保您的報價是正確的。缺少關於查詢或值的引用會導致查詢失敗。
確保你逃脫你的價值觀。查詢中的引號可能導致查詢失敗(並且還會讓您打開SQL注入)。使用mysql_real_escape_string()來轉義您的輸入。
確保你沒有混合mysqli_ *和mysql_ *函數。它們不是一回事,也不能一起使用。 (如果你要選擇一個或另一個棍子mysqli_ *。爲什麼見下文)。
mysql_ *函數不應該被用於新的代碼其他提示。他們不再被維護,社區已經開始了貶值過程。相反,您應該瞭解準備好的聲明並使用PDO或MySQLi。如果你不能決定,這篇文章將有助於選擇。如果你在意學習,這裏有很好的PDO教程。
我希望你逃避你的變量之間取出的空間。請注意,'mysql'擴展將很快被棄用,並在將來被刪除。考慮使用'mysqli' – bear
@ bear不需要轉義變量。 PHP在使用雙引號時區分變量。 – P5Coder
@ P5Coder如果一個變量包含''',則查詢將失敗。 – bear