繁体   English   中英

PHP:检查MySQL数据库中是否更新了任何值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM