2010-02-17 122 views
0

我有3個表:雖然我在更新vehicle_record表成功的無法更新表

  1. Vehicle_record
  2. 保險
  3. Roadtax

,其他兩個表不能更新。

當我運行查詢,出現以下錯誤信息:

1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行'WHERE regno ='TAC 2123''附近使用正確的語法。

+10

您需要發佈產生錯誤的代碼 – PaulJWilliams 2010-02-17 10:53:13

回答

0

從錯誤消息中,我懷疑您的密鑰的日期類型爲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()

0

爲了讓我們在這裏提供幫助,您需要提供發送到服務器的SQL語句的全文。將其粘貼爲您問題的一部分。

+0

謝謝..我解決了這個問題:) – user273551 2010-02-18 12:59:26