Compiles a SQL statement into a prepared statement. This method is a wrapper around sqlite3_prepare_v2()
.
method
sqlite.DatabaseSync.prepare
A SQL string to compile to a prepared statement.
The prepared statement.
Referenced types
class StatementSync
This class represents a single prepared statement. This class cannot be instantiated via its constructor. Instead, instances are created via thedatabase.prepare()
method. All APIs exposed by this class execute synchronously.
A prepared statement is an efficient binary representation of the SQL used to create it. Prepared statements are parameterizable, and can be invoked multiple times with different bound values. Parameters also offer protection against SQL injection attacks. For these reasons, prepared statements are preferred over hand-crafted SQL strings when handling user input.
- readonly expandedSQL: string
The source SQL text of the prepared statement with parameter placeholders replaced by the values that were used during the most recent execution of this prepared statement. This property is a wrapper around
sqlite3_expanded_sql()
. - readonly sourceSQL: string
The source SQL text of the prepared statement. This property is a wrapper around
sqlite3_sql()
. - all(
This method executes a prepared statement and returns all results as an array of objects. If the prepared statement does not return any results, this method returns an empty array. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn array of objects. Each object corresponds to a row returned by executing the prepared statement. The keys and values of each object correspond to the column names and values of the row.
all(This method executes a prepared statement and returns all results as an array of objects. If the prepared statement does not return any results, this method returns an empty array. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param namedParametersAn optional object used to bind named parameters. The keys of this object are used to configure the mapping.
@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn array of objects. Each object corresponds to a row returned by executing the prepared statement. The keys and values of each object correspond to the column names and values of the row.
- get(
This method executes a prepared statement and returns the first result as an object. If the prepared statement does not return any results, this method returns
undefined
. The prepared statement parameters are bound using the values innamedParameters
andanonymousParameters
.@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn object corresponding to the first row returned by executing the prepared statement. The keys and values of the object correspond to the column names and values of the row. If no rows were returned from the database then this method returns
undefined
.get(This method executes a prepared statement and returns the first result as an object. If the prepared statement does not return any results, this method returns
undefined
. The prepared statement parameters are bound using the values innamedParameters
andanonymousParameters
.@param namedParametersAn optional object used to bind named parameters. The keys of this object are used to configure the mapping.
@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn object corresponding to the first row returned by executing the prepared statement. The keys and values of the object correspond to the column names and values of the row. If no rows were returned from the database then this method returns
undefined
. This method executes a prepared statement and returns an iterator of objects. If the prepared statement does not return any results, this method returns an empty iterator. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn iterable iterator of objects. Each object corresponds to a row returned by executing the prepared statement. The keys and values of each object correspond to the column names and values of the row.
This method executes a prepared statement and returns an iterator of objects. If the prepared statement does not return any results, this method returns an empty iterator. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param namedParametersAn optional object used to bind named parameters. The keys of this object are used to configure the mapping.
@param anonymousParametersZero or more values to bind to anonymous parameters.
@returnsAn iterable iterator of objects. Each object corresponds to a row returned by executing the prepared statement. The keys and values of each object correspond to the column names and values of the row.
- run(
This method executes a prepared statement and returns an object summarizing the resulting changes. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param anonymousParametersZero or more values to bind to anonymous parameters.
run(This method executes a prepared statement and returns an object summarizing the resulting changes. The prepared statement parameters are bound using the values in
namedParameters
andanonymousParameters
.@param namedParametersAn optional object used to bind named parameters. The keys of this object are used to configure the mapping.
@param anonymousParametersZero or more values to bind to anonymous parameters.
- enabled: boolean): void;
The names of SQLite parameters begin with a prefix character. By default,
node:sqlite
requires that this prefix character is present when binding parameters. However, with the exception of dollar sign character, these prefix characters also require extra quoting when used in object keys.To improve ergonomics, this method can be used to also allow bare named parameters, which do not require the prefix character in JavaScript code. There are several caveats to be aware of when enabling bare named parameters:
- The prefix character is still required in SQL.
- The prefix character is still allowed in JavaScript. In fact, prefixed names will have slightly better binding performance.
- Using ambiguous named parameters, such as
$k
and@k
, in the same prepared statement will result in an exception as it cannot be determined how to bind a bare name.
@param enabledEnables or disables support for binding named parameters without the prefix character.
- enabled: boolean): void;
By default, if an unknown name is encountered while binding parameters, an exception is thrown. This method allows unknown named parameters to be ignored.
@param enabledEnables or disables support for unknown named parameters.
- enabled: boolean): void;
When reading from the database, SQLite
INTEGER
s are mapped to JavaScript numbers by default. However, SQLiteINTEGER
s can store values larger than JavaScript numbers are capable of representing. In such cases, this method can be used to readINTEGER
data using JavaScriptBigInt
s. This method has no impact on database write operations where numbers andBigInt
s are both supported at all times.@param enabledEnables or disables the use of
BigInt
s when readingINTEGER
fields from the database.