# sqlite_exec

# SQLiteDatabase::exec

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase::exec — Executes a result-less query against a given database

### 说明

sqlite_exec ( resource `$dbhandle` , string `$query` [, string `&$error_msg` ] ) : bool
sqlite_exec ( string `$query` , resource `$dbhandle` ) : bool

面向对象风格 (method):

public SQLiteDatabase::queryExec ( string `$query` [, string `&$error_msg` ] ) : bool

Executes an SQL statement given by the `query` against a given database handle (specified by the `dbhandle` parameter).

Warning

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.

### 参数

`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.

`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.

> Note: 为兼容其他数据库扩展(比如 MySQL)，支持两种可替代的语法。推荐第一种格式，函数的第一个参数是`dbhandle`。

### 返回值

This function will return a boolean result; `TRUE` for success or `FALSE` for failure. If you need to run a query that returns rows, see sqlite_query().

由 `SQLITE_ASSOC` 与 `SQLITE_BOTH` 返回的列名会依照 sqlite.assoc_case 配置选项的值决定大小写。

### 更新日志

版本 | 说明
--- | ---
5.1.0 | Added the `error_msg` parameter

### 范例

Example #1 Procedural example

    <?php
    $dbhandle = sqlite_open('mysqlitedb');
    $query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
    if (!$query) {
        exit("Error in query: '$error'");
    } else {
        echo 'Number of rows modified: ', sqlite_changes($dbhandle);
    }
    ?>

Example #2 Object-oriented example

    <?php
    $dbhandle = new SQLiteDatabase('mysqlitedb');
    $query = $dbhandle->queryExec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
    if (!$query) {
        exit("Error in query: '$error'");
    } else {
        echo 'Number of rows modified: ', $dbhandle->changes();
    }
    ?>

### 参见

- sqlite_query() - Executes a query against a given database and returns a result handle
- sqlite_unbuffered_query() - Execute a query that does not prefetch and buffer all data
- sqlite_array_query() - Execute a query against a given database and returns an array