[英]PHP: Check if any values are updated in MySQL database
我正在尝试创建一条语句来插入和更新数据库中的行,以在更新行时更改值时更改数据库中的值。
我不确定我的问题是否足够清楚,但是这是我的代码(检查注释,这应该可以解决问题):
$stmProducts = $db->prepare("
INSERT INTO
products
SET
identifier = :identifier,
title = :title,
price = :price,
content = :content
ON DUPLICATE KEY UPDATE
title = :title,
price = :price,
content = :content
// If any values (title, price or content) has been changed while updating:
// updated = true
");
我已经用CASE WHEN
尝试了一些方法,但是那没有用,我没有使用的确切代码,但实际上是这样的:
updated = CASE WHEN title != :title THEN true END
我可能正在寻找完全错误的方向,但是要达到我想要达到的目标的最佳方法是什么?
您可以了解它检查PDOStatement::rowCount()
。 插入将返回1,而更新将返回2。
检查文件
使用ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为1;如果更新现有行,则为2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.