PHP/MYSQL:更新 WHERE 子句中缺少值的查询

PHP/MYSQL: Update Query where value is missing from WHERE clause

我想我知道这个问题的答案,但想得到确认。

如果您有一个带有 where 子句的简单更新查询,并且 where 子句中的变量值丢失,是否意味着每条记录都会更新?

//let's say $name is empty

UPDATE users SET name= 'Jason' WHERE userid = '$name'

is that the same as 

UPDATE users SET name= 'Jason' WHERE userid = ''

每条记录都会更新的行为吗?

而且,如果是这样,您是否可以在 SQL 中添加任何内容来防止这种潜在的灾难?

感谢指导。

两个查询都将更新 userid 列为空的所有记录。但这并不意味着 userid 值等于 NULL 的行将受到影响。如果您想对 NULL 列使用 WHERE,请阅读 how to working with NULL values

如果变量为空,或没有值,或“”,并且在您的 table 上没有 userid 为空或 null 的记录,则没有记录将更新为where 条件不支持记录,但是如果有任何记录为空 userid,则记录将使用您提供给相应列的值进行更新。