The busyTimeout() method and related API sqlite3_busy_timeout() is a connection level attribute and affects whole connection and should be set once after opening connection. Do not set to zero or you will encounter "Database is busy" error message when calling query, querySingle, prepare, or execute methods. Also ensure that sqlite3 library is compiled with HAVE_USLEEP defined, otherwise busyTimeout() can only time out in seconds. It is very highly recommended to call busyTimeout() with non-zero timeout for reliability in concurrent environment.
PHP.mk документација
SQLite3::busyTimeout
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
sqlite3.busytimeout.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
sqlite3.busytimeout.php
SQLite3::busyTimeout
Референца за `sqlite3.busytimeout.php` со подобрена типографија и навигација.
SQLite3::busyTimeout
(PHP 5 >= 5.3.3, PHP 7, PHP 8)
SQLite3::busyTimeout — Го поставува ракувачот за зафатена врска
= NULL
Поставува ракувач за зафатеност што ќе спие додека базата на податоци не е заклучена или не се достигне времето на истекување.
Параметри
milliseconds-
Милисекунди за спиење. Поставувањето на оваа вредност на вредност помала или еднаква на нула, ќе го исклучи веќе поставениот ракувач за време на истекување.
Белешки од корисници 3 белешки
(PHP 5 >= 5.3.3, PHP 7, PHP 8) ¶
12 години пред
ppryor63 @ gmail . com ¶
пред 5 години
It's possible to use PRAGMA to set busyTimeout (milliseconds) :
<?php
$db = new SQLite3('my.db');
$db->exec("PRAGMA busy_timeout=5000");
?>
anthony @ domps . fr ¶
пред 10 години
For SQLite2 (http://php.net/manual/en/function.sqlite-busy-timeout.php), PHP sets the default busy timeout to be 60 seconds when the database is opened.
However, this does not happen for v3 and it has to be done manually.
My personal experience is that the default value of SQLite3, which is 0, is not enough when you have to do consecutive read/write commits and the file has not been accessed for long time.