Creates a new prepared statement from native code.
This is used internally by the Database class. Probably you don't need to call this yourself.
Readonly
columnThe names of the columns returned by the prepared statement.
const stmt = db.prepare("SELECT bar FROM foo WHERE bar = ?");
console.log(stmt.columnNames);
// => ["bar"]
Readonly
nativeNative object representing the underlying sqlite3_stmt
This is left untyped because the ABI of the native bindings may change at any time.
Readonly
paramsThe number of parameters expected in the prepared statement.
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ?");
console.log(stmt.paramsCount);
// => 1
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ? AND baz = ?");
console.log(stmt.paramsCount);
// => 2
Execute the prepared statement and return all results as objects.
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ?");
stmt.all("baz");
// => [{bar: "baz"}]
stmt.all();
// => [{bar: "baz"}]
stmt.all("foo");
// => [{bar: "foo"}]
Rest
...params: ParamsType[]optional values to bind to the statement. If omitted, the statement is run with the last bound values or no parameters if there are none.
Finalize the prepared statement, freeing the resources used by the statement and preventing it from being executed again.
This is called automatically when the prepared statement is garbage collected.
It is safe to call this multiple times. Calling this on a finalized statement has no effect.
Internally, this calls sqlite3_finalize
.
Execute the prepared statement and return the first result.
If no result is returned, this returns null
.
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ?");
stmt.all("baz");
// => [{bar: "baz"}]
stmt.all();
// => [{bar: "baz"}]
stmt.all("foo");
// => [{bar: "foo"}]
The following types can be used when binding parameters:
JavaScript type | SQLite type |
---|---|
string |
TEXT |
number |
INTEGER or DECIMAL |
boolean |
INTEGER (1 or 0) |
Uint8Array |
BLOB |
Buffer |
BLOB |
bigint |
INTEGER |
null |
NULL |
Rest
...params: ParamsType[]optional values to bind to the statement. If omitted, the statement is run with the last bound values or no parameters if there are none.
Execute the prepared statement. This returns undefined
.
const stmt = db.prepare("UPDATE foo SET bar = ?");
stmt.run("baz");
// => undefined
stmt.run();
// => undefined
stmt.run("foo");
// => undefined
The following types can be used when binding parameters:
JavaScript type | SQLite type |
---|---|
string |
TEXT |
number |
INTEGER or DECIMAL |
boolean |
INTEGER (1 or 0) |
Uint8Array |
BLOB |
Buffer |
BLOB |
bigint |
INTEGER |
null |
NULL |
Rest
...params: ParamsType[]optional values to bind to the statement. If omitted, the statement is run with the last bound values or no parameters if there are none.
Return the expanded SQL string for the prepared statement.
Internally, this calls sqlite3_expanded_sql()
on the underlying sqlite3_stmt
.
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ?", "baz");
console.log(stmt.toString());
// => "SELECT * FROM foo WHERE bar = 'baz'"
console.log(stmt);
// => "SELECT * FROM foo WHERE bar = 'baz'"
Execute the prepared statement and return the results as an array of arrays.
This is a little faster than all.
const stmt = db.prepare("SELECT * FROM foo WHERE bar = ?");
stmt.values("baz");
// => [['baz']]
stmt.values();
// => [['baz']]
stmt.values("foo");
// => [['foo']]
The following types can be used when binding parameters:
JavaScript type | SQLite type |
---|---|
string |
TEXT |
number |
INTEGER or DECIMAL |
boolean |
INTEGER (1 or 0) |
Uint8Array |
BLOB |
Buffer |
BLOB |
bigint |
INTEGER |
null |
NULL |
Rest
...params: ParamsType[]optional values to bind to the statement. If omitted, the statement is run with the last bound values or no parameters if there are none.
Generated using TypeDoc
A prepared statement.
This is returned by prepare and query.
Example
Example
Example