PHP/MySQL:更新不存在的列值

lie*_*ewl 3 php mysql

所以,这个查询:

mysql_query("UPDATE item SET name = 'foo' WHERE name = 'bar'");
Run Code Online (Sandbox Code Playgroud)

返回1,但表中不存在值'bar'.正如预期的那样,数据库本身没有任何变化,但在这种情况下mysql_query()不应该返回0吗?

Mis*_*cha 6

它返回true,因为查询已成功执行.如果您想知道更新了多少行,您必须使用mysql_affected_rows.

  • `UPDATE ... WHERE`表示"更新任何存在的",而不是"如果不存在则更新并生成错误".想象一下`SELECT ... WHERE`与任何记录都不匹配:查询不会失败,它只找到零匹配记录. (4认同)