我正在尝试按如下方式执行一个简单的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后代做的,我认为相关代码已经发布。