@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)"


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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 19:18
50000 руб./за проект
24 апр. 2024, в 19:05
15000 руб./за проект
24 апр. 2024, в 18:39
80000 руб./за проект