你能告诉我这个更新语句有什么问题吗?不更新mysql中的db记录
$updateid = $row[id];
$result2 = mysql_query("UPDATE grades SET processed = 1
where 'id' = '$updateid'") or die(mysql_error());
最佳答案
ColumnNames
(以及TableName)不应该用单引号括起来,因为它们是标识符,而不是字符串文本。用单引号括住标识符使其成为字符串文字。
UPDATE grades
SET processed = 1
where id = '$updateid'
如果您不确定正在使用的columnName(或TableName)是否为保留关键字,请使用反勾号而不是单引号对其进行分隔。如,
UPDATE `grades`
SET `processed` = 1
where `id` = '$updateid'
另一方面,如果变量的值来自外部,则查询易受
SQL Injection
攻击。请看下面的文章,学习如何预防。通过使用PreparedStatements
可以去掉在值周围使用单引号。How to prevent SQL injection in PHP?
When to use single quotes, double quotes, and backticks in MySQL
关于php - 我的更新查询出了什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15366398/