我已经将php PDO用于sqlite3数据库。这个数据库访问多个应用程序,所以我在sqlite3数据库中应用了WAL模式。
我的问题是我有一个php文件,它在后端运行无限,用于sqlite3中的插入/更新数据。它的工作正常,但sqlite3为-WAL模式创建临时文件(databasename-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;
答案 0 :(得分:0)
要将WAL文件合并到主数据库文件中,请运行PRAGMA wal_checkpoint。
当WAL文件大小达到4 MB时,此happens automatically。