php - 使用 ON DUPLICATE KEY 时确定是 UPDATE 还是 INSERT

标签 php mysql mysqli

<分区>

我正在使用如下所示的 mysqli/php 查询:

$query = "
INSERT INTO table (unique_key, column_1, column_2) 
VALUES (?,?,?)
ON DUPLICATE KEY UPDATE
value_1 = ?, value_2 = ?";
if ($statement = $mysqli->prepare($query))
{
    $statement->bind_param("iiiii", $unique_key, $value_1, $value_2, $value_1, $value_2);
    $statement->execute();
    $statement->close();
}

如何判断查询是执行了 UPDATE 还是 INSERT?

最佳答案

您可以使用 mysqli_affected_rows并检查返回值。来自 MySQL docs :

For INSERT ... ON DUPLICATE KEY UPDATE statements, the affected-rows value per row is 1 if the row is inserted as a new row, 2 if an existing row is updated, and 0 if an existing row is set to its current values.

关于php - 使用 ON DUPLICATE KEY 时确定是 UPDATE 还是 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38159224/

相关文章:

php - while 循环将连接到四个不同类(class)的单个名称四次写入,如何修复

php - 连接失败: 2002

javascript - 将 JavaScript 字符串传递给 <div id ="div1"> 标签

javascript - 将 HTML 表的每一行放入不同的数组中

python - 命令不同步你现在不能运行这个命令

java - EJB和preparedStatement?

php - FancyBox 并在 fancybox 退出时自动加载文件

php - Mysqli LIKE 无法使用撇号?

php - 如何从 MySQL 数据库中回显换行符?

php - SQL 排序方式 ... ASC