2014-04-16 53 views
0

我知道這裏有很多這樣的問題,但沒有一個似乎工作,我無法找到我的語法錯誤!您的SQL語法有錯誤;檢查手冊的正確語法使用附近'AND`user_id` = 1'

mysql_query("SELECT `type` FROM `poststuff` WHERE `post_id` = 7 AND `user_id` = 1"); 

任何幫助將會很棒! (順便說一句,錯誤是標題) 的完整代碼(你的人 - , - )

function update_post($post_id, $user_id) { 
$result = mysql_result(mysql_query("SELECT `type` FROM `poststuff` WHERE `post_id` = $post_id AND `user_id` = $user_id"), 0) or die(mysql_error()); 
if ($result !== null) { 
if ($result === "no") { 
$actual_count = mysql_result(mysql_query("SELECT `$result` FROM `posts` WHERE `post_id` = $post_id"), 0); 
mysql_query("UPDATE `posts` SET `$actual_count` = $actual_count+1 WHERE `post_id` = $post_id AND `type` = 'no'"); 
} 
+2

給你的表結構 –

+1

7和1實際上是在查詢還是他們的變量? – AbraCadaver

+0

是的,他們不需要單引號,因爲他們是整數對嗎? –

回答

2

有沒有出現在你發佈的SQL文本的一個問題。我建議您驗證它是AND關鍵字之前的有效空白字符。

根據錯誤消息,我懷疑查詢中的AND關鍵字前有一個無效字符。

如果您運行的查詢有逗號AND關鍵字前面的其他非空白字符,則會出現這種錯誤。

例如,運行此查詢:

SELECT `type` FROM `poststuff` WHERE `post_id` = 7,AND `user_id` = 1 
               ^

會導致像你所得到的一個錯誤:

... error in your SQL syntax; ... near 'AND `user_id` = 1' 

,如果沒有一個值相同的錯誤將報告等號後面,只有空格。例如,以下查詢將返回相同的錯誤:

SELECT `type` FROM `poststuff` WHERE `post_id` = AND `user_id` = 1 
               ^
+0

我也想到了這一點,但是當我複製/粘貼上述到我的查詢瀏覽器,我沒有得到那個錯誤。也許OP沒有複製粘貼他的查詢到SO,但重新輸入它? –

+0

function update_post($ post_id,$ user_id){ \t $ result = mysql_result(mysql_query(「SELECT'type' FROM'poststuff' where'post_id' = $ post_id AND'user_id' = $ user_id」),0) (mysql_error()); \t如果($結果!== NULL){ \t如果($結果=== 「無」){ \t $ actual_count = mysql_result(的mysql_query(「SELECT'$ result' FROM'posts' WHERE'post_id' = $ post_id「),0); (「UPDATE'posts' SET'$ actual_count' = $ actual_count + 1 WHERE'post_id' = $ post_id AND'type' ='no'」); \t} –

+0

此外,也沒什麼與 –

相關問題