更新重复键创建一个新行(MYSQL-PHP)

时间:2018-05-07 13:31:54

标签: php mysql sql-update sql-insert

我正在尝试按如下方式执行一个简单的SQL语句:

INSERT INTO imeiTable (imei, id)
VALUES ('imei','ID')
ON DUPLICATE KEY UPDATE id='ID'

其效果与预期完美相同(其中IMEI是主键,IMEI和ID是数字)。

但是,当我尝试通过PHP执行此语句时,我得到一个奇怪的结果。当它检测到重复时,它会创建一个根本没有imei的新行,而只是ID。如果不存在,则正常添加。

这是我试图将其作为一个php声明:

$q = sprintf("INSERT INTO imeiTable (imei, id) VALUES ('%s','%s') ON DUPLICATE KEY UPDATE id='%s'",
    mysqli_real_escape_string($this->connection,$imei),
    mysqli_real_escape_string($this->connection,$id),
    mysqli_real_escape_string($this->connection,$id)
);

有谁能理解为什么我的php和直接发布到phpmyadmin之间有不同的结果?

我所有的其他数据库函数都按预期工作,所以它不是我用q后代做的,我认为相关代码已经发布。

0 个答案:

没有答案