@khodos_dmitry

Как правильно пользоваться подготовленными запросами в случает с ON DUPLICATE KEY UPDATE?

Запрос:
$stmn = $pdo_link->prepare("INSERT INTO `catalog-rekvisity` SET `z_url` = :z_url, `z_str` = :z_str, `z_id` = :z_id, `name` = :name, `url` = :url ON DUPLICATE KEY UPDATE `z_str` = :z_str, `z_id` = :z_id, `name` = :name, `url` = :url");

Массив:
'z_url' => string 'https://ebay.com/2328/'
  'z_id' => string '2328'
  'z_str' => string 'dfgfhgfhfghg'
  'name' => string 'Ебэй'
  'url' => string 'ebay.com'

Появляется ошибка:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

то есть нужно вставить 9 переменных, а в массиве их 5. Как быть? Дублировать переменные?
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
В данном частном случае можно сделать так:
ON DUPLICATE KEY UPDATE `z_str` = values(z_str), `z_id` = values(z_id), `name` = values(name), `url` = values(url)"


А в общем случае - да, либо дублировать переменные, либо отключать режим эмуляции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы