你能告诉我这个更新语句有什么问题吗?不更新我在 mysql 中的数据库记录
$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
攻击如果变量的值(s) 来自外部。请查看下面的文章,了解如何预防它。通过使用 PreparedStatements
,您可以摆脱在值周围使用单引号。
关于php - 我的更新查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366398/