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
,则记录将使用您提供给相应列的值进行更新。
我想我知道这个问题的答案,但想得到确认。
如果您有一个带有 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
,则记录将使用您提供给相应列的值进行更新。