Сообщение от andrew76
|
Вот здесь есть simple example
|
Вот это "?" называется "неименованные, или позиционные, псевдопеременные". Позиционные потому, что они должны быть указаны в той же последовательности в какой будут в запрос поступать данные. То есть, если вы записываете в базу массив [a, b, c], элементы которого должны попасть соответственно в поля a, b, c таблицы, то в запросе должно быть прописано ?, ?, ?. Где и в каком руководстве вы прочли, то передавая в запрос массив, его можно весь, скопом, привязать к одной псевдопеременной я не знаю. Сам MySQLi этого не делает, это может только драйвер, а есть ли такое в Node не в курсе. В случае если элементы массива будут иметь иной порядок, а вы этого не контролируете, то данные будут записаны не в те поля, и никакой драйвер эту ситуацию не исправит.
Другое дело PDO, в нем есть и именованные псевдопеременные. Не проблема разместить в теле запроса в любом месте :a, :b ... и передать для записи массив [a=> 12, b=> 15] (объект, в случае Node) и проблем не будет никогда. Есть ли в Node поддержка абстракций для работы с БД не в курсе.
А вообще такие запросы выгодно выполнять в случаях например множественной вставки или обновлений. В этом случае запрос подготавливается, проверяется, а затем в него вместо псевдопеременных просто подставляются новые данные.