Mysql INSERT ... ON DUPLICATE KEY UPDATE响应

时间:2014-10-17 11:19:18

标签: php mysql

你好我有一个表A,我希望当一个新值(不是UPDATE)插入到该表中以在表B中执行INSERT时,我尝试使用$ query INSERT INTO的响应来播放... ON DUPLICATE KEY UPDATE但没有运气,它总是返回1.

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

我也试过'hack'让我们说,把UPDATE置于INSERT之上,这样如果条目不存在失败但是每次都返回1。

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

2 个答案:

答案 0 :(得分:0)

这应该有效:

<?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.");
}
?>

答案 1 :(得分:0)

感谢@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);
    }   
 }