Mysql插入..关于重复密钥更新响应


Mysql INSERT ... ON DUPLICATE KEY UPDATE responce

你好,我有一个表a,当在该表中插入一个新值(而不是UPDATE)时,我想在表B中执行INSERT,我试着使用$query INSERT INTO的响应。。在重复密钥更新但运气不佳时,它总是返回1。

$query = "INSERT INTO table ".$fields." VALUES ".$values." ON DUPLICATE KEY UPDATE updated=1"
$response = $dbc->query($query);
if($response == 1)

我也尝试过一个"破解",比如说,把UPDATE放在INSERT之上,这样如果条目不存在,就会失败,但每次都会返回1。

 $query = "UPDATE table SET updated=1 ..;
 $response = $dbc->query($query);
 if($response == 1)

这应该有效:

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "INSERT INTO tableA ".$fields." VALUES ".$values." ON DUPLICATE KEY UPDATE updated=1");
if(mysqli_affected_rows($link)==1)
{
   mysqli_query($link, "INSERT INTO tableB ".$fields." VALUES ".$values.");
}
?>

感谢@boomoto帮我找到答案:

 $query = "UPDATE tableA ..
 $response = $dbc->query($query);
 if(mysqli_affected_rows($dbc)==0){
        $query2 = "INSERT INTO tableB ..
        $response2 = $dbc->query($query2);
        $query = "INSERT INTO tableA ..
        $response = $dbc->query($query);
    }   
 }