SQLite3::busyTimeout

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

SQLite3::busyTimeout设置繁忙连接处理程序

描述

public SQLite3::busyTimeout(int $milliseconds): bool

设置一个繁忙处理程序,该处理程序将休眠,直到数据库不再锁定或超时到达。

参数

milliseconds

休眠的毫秒数。将此值设置为小于或等于零的值将关闭已设置的超时处理程序。

返回值

成功时返回 true,失败时返回 false

添加注释

用户贡献的注释 3 个注释

10
ppryor63 at gmail dot com
10 年前
busyTimeout() 方法和相关的 API sqlite3_busy_timeout() 是连接级别的属性,影响整个连接,应该在打开连接后设置一次。不要设置为零,否则在调用 query、querySingle、prepare 或 execute 方法时会遇到“数据库忙”错误消息。还要确保 sqlite3 库是在定义了 HAVE_USLEEP 的情况下编译的,否则 busyTimeout() 只能以秒为单位超时。强烈建议在并发环境中使用非零超时调用 busyTimeout() 以确保可靠性。
4
anthony at domps dot fr
3 年前
可以使用 PRAGMA 设置 busyTimeout(毫秒)

<?php

$db
= new SQLite3('my.db');
$db->exec("PRAGMA busy_timeout=5000");

?>
4
dkarnout at gmail dot com
9 年前
对于 SQLite2 (https://php.net/manual/en/function.sqlite-busy-timeout.php),PHP 将默认的繁忙超时设置为 60 秒,当数据库打开时。
但是,这不会发生在 v3 中,必须手动完成。

我个人的经验是,SQLite3 的默认值 0 在您必须执行连续的读写提交且文件长时间未被访问时不够用。
To Top