sqlite_query

SQLiteDatabase::query

Executes a query against a given database and returns a result handle

&reftitle.description; `resource` `sqlite_query` `resource` `dbhandle` `string` `query` `int` `result_type` SQLITE_BOTH `string` `error_msg` `resource` `sqlite_query` `string` `query` `resource` `dbhandle` `int` `result_type` SQLITE_BOTH `string` `error_msg`

&style.oop; (method):

public `SQLiteResult` `SQLiteDatabase::query` `string` `query` `int` `result_type` SQLITE_BOTH `string` `error_msg`

Executes an SQL statement given by the `query` against a given database handle.

&reftitle.parameters;

`dbhandle`

- The SQLite Database resource; returned from `sqlite_open` when used procedurally. This parameter is not required when using the object-oriented method.

`query`

- The query to be executed.

  Data inside the query should be properly escaped.

`result_type`

- &sqlite.result-type;

`error_msg`

- The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the `sqlite_last_error` function.

&sqlite.param-compat;
&reftitle.returnvalues;

This function will return a result handle&return.falseforfailure;. For queries that return rows, the result handle can then be used with functions such as `sqlite_fetch_array` and `sqlite_seek`.

Regardless of the query type, this function will return &false; if the query failed.

`sqlite_query` returns a buffered, seekable result handle. This is useful for reasonably small queries where you need to be able to randomly access the rows. Buffered result handles will allocate memory to hold the entire result and will not return until it has been fetched. If you only need sequential access to the data, it is recommended that you use the much higher performance `sqlite_unbuffered_query` instead.

&reftitle.changelog;

&Version; | &Description;
5.1.0 | Added the `error_msg` parameter

&reftitle.notes;

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script. However, this works only when the result of the function is not used - if it is used, only the first SQL statement would be executed. Function `sqlite_exec` will always execute multiple SQL statements.

When executing multiple queries, the return value of this function will be &false; if there was an error, but undefined otherwise (it might be &true; for success or it might return a result handle).

&reftitle.seealso;

- `sqlite_unbuffered_query`
- `sqlite_array_query`