Здравствуйте. Скажите, как узнать, заблокирована ли при выполнении скрипта БД на запись(правку) или нет. Вот код, который изменяем запись в БД. Код (Text): <?php $db = new SQLite3($_SERVER['DOCUMENT_ROOT'].'/data.db'); // ожидаем 5 секунд $db->busyTimeout(5000); // многопоточный режим $db->exec('PRAGMA journal_mode=WAL;'); // блокируем БД на запись $db->querySingle("BEGIN IMMEDIATE;"); $NowTime = time(); $res = $db->query("SELECT id, Cat, FilePostName FROM Data WHERE Submit = 0 AND Time < $NowTime;"); while($row = $res->fetchArray(SQLITE3_ASSOC)) { // делаем замену if($db->exec('UPDATE Data SET Submit = 1 WHERE id = '.$row['id'].';') === TRUE) { // заменили значение echo 'Succeeded Update '.$row['id']; } else { // ошибка замены echo 'Fail Update '.$row['id']; } } $db->querySingle("COMMIT;"); $db->close(); unset($db); ?>
Решил проблему изменением Код (Text): $db->busyTimeout(0); И добавлением Код (Text): $db->enableExceptions(true); для отлова исключений.