2017-05-08 67 views
1

初學者在PHP中,並有很多麻煩釘了我的語法錯誤的更新數據查詢。這是查詢。更新數據SQL查詢中的語法錯誤

$sethere = "UPDATE `".$_currentclass."` 
    SET `".$_date."` = 1 
    WHERE studentid = `".$_idNum."`"; 

錯誤我得到只是說:「你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本正確的語法在第1行使用手冊」

需要注意的是,SET行正在改變一個默認爲0的布爾值,並且我想將其更改爲1.我已經嘗試過大量不同的排列,但沒有運氣。任何幫助將非常感激。

+2

您應該使用[預處理語句(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php),而不是你的串接查詢,因爲它更安全。你正在使用'mysql_ *','mysqli_ *'或'pdo'嗎? –

+0

從$ _idNum變量中刪除反引號 –

+0

試試這個 - $ sethere =「UPDATE」。$ _ currentclass。「SET」。$ _ date。「= 1 WHERE studentid =」。$ _ idNum;'並且執行'echo $ sethere;並在mysql中運行這個查詢。 – Bhaskar

回答

0

請勿使用反引號(`)作爲值部分。

$sethere = "UPDATE `".$_currentclass."` 
SET `".$_date."` = 1 
WHERE studentid = ".$_idNum; 
0
$sethere = "UPDATE table_name SET col_name= 1 where studentid='$value'"; 

你是因爲你沒有根據SQL版本使用語法得到錯誤。讓我你用的是什麼版本的PHP和SQL的

+0

什麼版本的mysql允許在值的後面打勾? –

0
$sethere = "UPDATE ".$_currentclass." 
SET ".$_date." = 1 
WHERE studentid = ".$_idNum;