Инструкции подготовки SQLite3 с использованием именованных параметров в Node.js

#sql #node.js #sqlite #prepared-statement

Вопрос:

Я знаю, что смогу это сделать;

 // As an object with named parameters.
db.run("UPDATE tbl SET name = $name WHERE id = $id", {
  $id: 2,
  $name: "bar"
});
 

Как насчет использования такого prepare утверждения?

 var stmt = db.prepare("INSERT INTO tbl (column_one, column_two ) values ($column_one, $column_two)");

stmt.run("first value of column 1", "first value of column 1");
stmt.run("second value of column 1", "second value of column 1");
stmt.run("third value of column 1", "third value of column 1");

stmt.finalize();
 

Как я могу привязать значение к определенному параметру?

Ответ №1:

В качестве альтернативы вы можете сделать следующее

 var query = "INSERT INTO tbl (column_one, column_two ) values ($column_one, $column_two)";

db.run(query, {$column_one: "your value", $column_two: "your value"});
db.run(query, {$column_one: "your value", $column_two: "your value"});
db.run(query, {$column_one: "your value", $column_two: "your value"});
 

или с заявлением о подготовке

 var stmt = db.prepare("INSERT INTO tbl (column_one, column_two ) values (?, ?)");

stmt.run("first value", "second value");
stmt.run("first value", "second value");
stmt.run("first value", "second value");

stmt.finalize();
 

Комментарии:

1. Первый из них не использует инструкцию prepare, верно? И второе, что делать, если у меня проблема с заказом?