0
所以,我有我已經序列化的自定義PHP對象,我試圖將其插入到一個MySQL數據庫和PHP 代碼:MySQL錯誤1064同時插入序列化對象
$serializedOrder = serialize($objectOrder);
//I have tried both of these, and all combinations of them
$serializedOrder = mysql_real_escape_string($serializedOrder);
$serializedOrder = stripslashes($serializedOrder);
$result = mysql_query("INSERT INTO orders(order) VALUES('".$serializedOrder."')");
if ($result == false) {
echo "mysql_query failed ";
echo mysql_error();
echo " ";
echo mysql_errno();
}
這將產生的回覆:
mysql_query失敗您的SQL語法有錯誤; ('O:10:「OrderClass」:6:{s:9:「foodArray」; a:0:{} s:)檢查與您的MySQL服務器版本相對應的手冊, 8: 「baseTime」; I:0; S:1' 位於第1行1064
總連續字符串是:
○:10: 「OrderClass」:6:{S:9: 「foodArray」 ;一個:0:{} S:8: 「baseTime」; I:0; S:11: 「ORDERNUMBER」; I:0; S:11: 「truckNumber」; I:0; S:10: 「的customerID」 ; I:0; S:11: 「orderStatus」; S:0: 「」;}
任何幫助理解
'ORDER'是[MySQL的保留關鍵字(http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html),並且必須與引用它反引號將其用作列標識符。 – 2013-03-04 00:50:46
不要在'mysql_real_escape_string()'之後調用'stripslashes()'!您正在使用'mysql_real_escape_string()'完成轉義。 – 2013-03-04 00:52:31
這裏需要特別注意的是,所有的mysql_ *函數都被棄用,並且很快就會被刪除,所以如果PHP在服務器上得到更新,您的腳本將不再工作。您將在php.net中看到此消息:此擴展在PHP 5.5.0以前不推薦使用,並且將來會被刪除。相反,應該使用MySQLi或PDO_MySQL擴展。另請參閱MySQL:選擇API指南和相關FAQ以獲取更多信息。這個功能的替代方案包括: – thatthatisis 2013-03-04 00:58:00