0

我已经将 php PDO 用于 sqlite3 数据库。这个数据库访问多个应用程序,所以我在 sqlite3 数据库中应用了 WAL 模式。

我的问题是我有一个 php 文件,它在后端无限运行以在 sqlite3 中插入​​/更新数据。它工作正常,但 sqlite3 为 -WAL 模式(数据库名-wal)创建临时文件。但是 -wal 文件大小不断增加,如何将 -WAL 文件数据提交到主数据库文件中。

我已经尝试过下面的代码来解决这个问题,但它不起作用。

try {
            $dbhandle = new PDO("sqlite:".SQLITE_DB_PATH.DBNAME);
            return $dbhandle;
        } catch (PDOException $e) {
            /*echo 'Connection failed: ' . $e->getMessage();
            exit;*/
        }

$dbhandle->beginTransaction();
$dbhandle->query($query);
$dbhandle->commit();
$dbhandle=null;
4

1 回答 1

0

要将 WAL 文件合并到主数据库文件中,请运行PRAGMA wal_checkpoint

当 WAL 文件达到 4 MB 的大小时,这会自动发生。

于 2013-10-26T08:02:48.110 回答