使用ON DUPLICATE KEY时确定是否UPDATE或INSERT

Amy*_*lle 0 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();
}
Run Code Online (Sandbox Code Playgroud)

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

rev*_*evo 9

您可以使用mysqli_affected_rows并检查返回值.来自MySQL文档:

对于INSERT ... ON DUPLICATE KEY UPDATE语句,如果将行作为新行插入,则每行的受影响行值为1;如果更新现有行,则为2,如果现有行设置为其当前值,则为0.