2012-12-27 32 views
1

我寫這個查詢一個Joomla插件mysql的語法錯誤當試圖在一個Joomla插件

$query = "UPDATE #__content SET fulltext='$_POST[statenames]' WHERE id=$articleId"; 

更新表,但它給錯誤 -

你在你的SQL語法錯誤;檢查手冊, 對應於您的MySQL服務器版本的正確的語法使用 附近'fulltext ='1'WHERE id = 41'在第1行SQL = UPDATE jst_content SET fulltext ='1'WHERE id = 41

什麼是錯誤?

+2

你有一個名爲'fulltext'列?這是一個保留關鍵字。 –

+1

由於@ypercube陳述'fulltext'是一個保留的關鍵字,所以用[backticks](http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html) – SaschaM78

+0

包圍它。謝謝ypercube和SaschaM78。它在添加反引號之後工作 – Ajith

回答

2

FULLTEXT是一個MySQL保留關鍵字。您必須用反色包裝列。

$query = "UPDATE #__content SET `fulltext` = '$_POST[statenames]' WHERE id=$articleId"; 

作爲旁註,如果變量(多個)的值從客戶來到該查詢是用SQL Injection脆弱。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements,你可以擺脫圍繞值使用單引號。