Обновление дублирующего ключа, создающего новую строку (MYSQL-PHP) - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь сделать простой оператор 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 послесловиями, соответствующий код, который, я считаю, был опубликован.

...