我有3個表:雖然我在更新vehicle_record
表成功的無法更新表
- Vehicle_record
- 保險
- Roadtax
,其他兩個表不能更新。
當我運行查詢,出現以下錯誤信息:
1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行'WHERE regno ='TAC 2123''附近使用正確的語法。
我有3個表:雖然我在更新vehicle_record
表成功的無法更新表
,其他兩個表不能更新。
當我運行查詢,出現以下錯誤信息:
1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行'WHERE regno ='TAC 2123''附近使用正確的語法。
從錯誤消息中,我懷疑您的密鑰的日期類型爲a串。你應該把所有的值都放到查詢中。我建議你試試AdoDB library。這個庫是多數據庫,可以幫助您輕鬆插入和更新。使用AdoDB更新的例子:
$regno = $adodb->qstr('TAC 2123');
$data = array(
'col1' => 'val1',
'col2' => 'val2',
'col3' => 'val3'
);
$result = $adodb->AutoExecute($tablename, $data, 'UPDATE', "regno=$regno");
通過轉義把之前它變成一個查詢的價值,可以防止SQL注入發球進攻。使用AdoDB自動執行,則值的轉義自動執行AdoDB。
對於鍵入字符串的鍵,您必須手動執行。如果密鑰是整數,則使用intval
優於$adodb->qstr()
。
您需要發佈產生錯誤的代碼 – PaulJWilliams 2010-02-17 10:53:13