php - 我的更新查询有什么问题?

标签 php mysql sql

你能告诉我这个更新语句有什么问题吗?不更新我在 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/

相关文章:

sql - 在 SELECT INTO 语句中添加额外的列

java - Hibernate 使用 javax.sql.DataSource 实例

php - 如何在几秒钟内发送数百万个苹果推送通知,如 Urban Airship

php - 使用 Instagram API 获得关注者和关注

mysql - Codeigniter 中的查询时间比 Phpmyadmin 中的查询时间长

php - 电话可以用来传播本地主机的使用吗?

java - hibernate 无法识别数据库中已定义的约束

PHP - Simpletest - 如何测试 "included"类

php - 如何使用 PHP 从 PDF 文件访问元数据信息?

mysql - 如何降低总的 ActiveRecord 时间