2012-05-02 130 views
0

我在輸出上的$ sql語句有錯誤。mySQL查詢語句

您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的第1" 行使用近「」正確的語法手冊這是參照更新用戶設置的激活密鑰聲明。

$query = "SELECT * FROM users"; 

    $result = mysql_query($query) or die(mysql_error()); 

     while($row = mysql_fetch_array($result)){ 

if ($queryString == $row["activationkey"]){ 
$sql="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])"; 

    if (!mysql_query($sql)) { *die('Error: in activation' . mysql_error());} 
} 
} 

我不知道爲什麼這句法是錯誤的

+2

'echo $ sql;'please。 – Sampson

+1

除了你的問題,你應該使用mysqli或PDO。查看http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers PDO – simshaun

+0

UPDATE users SET activationkey ='',status ='activated'WHERE(id =)哦,我沒有從$ row [id]中得到任何東西。 –

回答

0
$query = "UPDATE `users` SET `activationkey` = '', status='activated' WHERE `id` = '$row['id']'"; 

提示:我建議保護您的ID,因爲SQL注入可以在查詢完成我的意思是說的即時WHERE id =「$行[」身份證「]」,使用WHERE id =(int)($ row ['id']), 這確保只有一個整數在該查詢中給出,如果它是一個stri ng us mysql_real_escape_string($ row ['string'])