Можете ли вы использовать подготовленный оператор в MySQL с «On Duplicate Key Update»? - PullRequest
5 голосов
/ 12 мая 2010

Я не могу найти никаких ссылок на использование подготовленных операторов с "ON DUPLICATE KEY UPDATE" с MySQL и PHP. Правильно ли я считаю, что это невозможно?

-Джит

Ответы [ 3 ]

18 голосов
/ 02 декабря 2011

Вот обобщенный пример этого использования:

$db->prepare('
INSERT INTO tableName (id, col1, col2, col3...)
VALUES (?,?,?,?)
ON DUPLICATE KEY
UPDATE  col1 = VALUES(col1),
        col2 = VALUES(col2),
        col3 = VALUES(col3)
');

$stmt->bind_param('isss',
                  $id,
                  $col1,
                  $col2,
                  $col3
                 );
$db->execute($stmt);

if ($id == null) { //If you need the auto increment from the insert.
  $newId = $stmt->insert_id;
}
2 голосов
/ 12 мая 2010

Вы должны иметь возможность запускать каждый SQL-запрос как подготовленный оператор. Я не знаю, почему вы думаете, что будет какое-то исключение для ON DUPLICATE KEY UPDATE. Попробуйте сначала и спросите нас, есть ли проблемы.

0 голосов
/ 12 мая 2010

Вы наверняка можете использовать ON DUPLICATE KEY UPDATE с PHP + MySQL. Ты это пробовал? Если у вас есть, с какой проблемой вы столкнулись?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...