SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::prepare准备 SQL 语句以供执行

描述

public SQLite3::prepare(string $query): SQLite3Stmt|false

准备一个 SQL 语句以供执行,并返回一个 SQLite3Stmt 对象。

参数

query

要准备的 SQL 查询。

返回值

成功时返回一个 SQLite3Stmt 对象,失败时返回 false

示例

示例 #1 SQLite3::prepare() 示例

<?php
unlink
('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>

参见

添加备注

用户贡献备注 1 则

Venkata Subbaraju
8 年前
如果没有检查 "prepare" 的返回值,如果使用 "exec",则会导致致命错误。

"PHP 致命错误:调用非对象上的成员函数 execute()"

为了避免此错误,需要检查返回值,如下所示

<?php
$db
= new SQLite3('school.db');
if(
$stmt = $db->prepare('SELECT id,student_name FROM classTen '))
{
$result = $stmt->execute();
$names=array();
while(
$arr=$result->fetchArray(SQLITE3_ASSOC))
{
$names[$arr['id']]=$arr['student_name'];
}
}
?>
To Top