Тема: mysql multi insert
Показать сообщение отдельно
  #9 (permalink)  
Старый 07.11.2020, 21:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от andrew76
Вот здесь есть simple example
Вот это "?" называется "неименованные, или позиционные, псевдопеременные". Позиционные потому, что они должны быть указаны в той же последовательности в какой будут в запрос поступать данные. То есть, если вы записываете в базу массив [a, b, c], элементы которого должны попасть соответственно в поля a, b, c таблицы, то в запросе должно быть прописано ?, ?, ?. Где и в каком руководстве вы прочли, то передавая в запрос массив, его можно весь, скопом, привязать к одной псевдопеременной я не знаю. Сам MySQLi этого не делает, это может только драйвер, а есть ли такое в Node не в курсе. В случае если элементы массива будут иметь иной порядок, а вы этого не контролируете, то данные будут записаны не в те поля, и никакой драйвер эту ситуацию не исправит.

Другое дело PDO, в нем есть и именованные псевдопеременные. Не проблема разместить в теле запроса в любом месте :a, :b ... и передать для записи массив [a=> 12, b=> 15] (объект, в случае Node) и проблем не будет никогда. Есть ли в Node поддержка абстракций для работы с БД не в курсе.

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