PHP Conference Japan 2024

SQLite3::exec

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

SQLite3::exec对给定数据库执行无结果查询

描述

public SQLite3::exec(string $query): bool

对给定数据库执行无结果查询。

注意: SQLite3 可能需要在执行查询期间创建» 临时文件,因此相应的目录必须可写。

参数

query

要执行的 SQL 查询(通常是 INSERT、UPDATE 或 DELETE 查询)。

返回值

如果查询成功,则返回true,失败则返回false

示例

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

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

$db->exec('CREATE TABLE bar (bar TEXT)');
?>

添加备注

用户贡献的笔记 2 条笔记

18
alexandre dot schmidt at gmail dot com
8 年前
我一直收到“数据库锁定”错误,直到我发现 sqlite3 的某些特性必须使用 SQL 特殊指令(即使用 PRAGMA 关键字)来设置。例如,解决我的“数据库锁定”问题的方法是将 journal_mode 设置为 'wal'(默认为 'delete',如这里所述:https://www.sqlite.org/wal.html(参见激活和配置 WAL 模式))。

所以基本上我需要做的是连接到数据库并使用 SQL 语句设置 journal_mode。示例

<?php
$db
= new SQLite3('/my/sqlite/file.sqlite3');
$db->busyTimeout(5000);
// WAL 模式对并发性的控制更好。
// 来源:https://www.sqlite.org/wal.html
$db->exec('PRAGMA journal_mode = wal;');
?>

希望这有帮助。
0
synnus
2 年前
<?php
$db
->exec('PRAGMA journal_mode = wal;');
$db->exec('PRAGMA synchronous = NORMAL;');
$db->exec('PRAGMA schema.taille_cache = 16000;');
?>
To Top