Я пытаюсь сделать простой оператор SQL следующим образом:
INSERT INTO imeiTable (imei, id)
VALUES ('imei','ID')
ON DUPLICATE KEY UPDATE id='ID'
Работает отлично, как задумано (где IMEI - это первичный ключ, а IMEI и ID - это числа).
Однако, когда я пытаюсь сделать это утверждение через PHP, я получаю странный результат. Когда он обнаруживает дубликат, он создает новую строку без imei, а только с идентификатором. Если его нет, он добавляется как обычно.
Это я пытаюсь сделать это как оператор 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 послесловиями, соответствующий код, который, я считаю, был опубликован.