SQLite3::backup

あるデータベースを、別のデータベースにバックアップする

説明

public bool SQLite3::backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main")

SQLite3::backup は、あるデータベースの内容を別のデータベースにコピーし、 コピー先のデータベースの内容を上書きします。 このメソッドは、データベースのバックアップを作成したり、 インメモリのデータベースを永続的なファイルにコピーしたり、その逆を行う場合に便利です。

ヒント

SQLite 3.27.0 (2019-02-07) 以降のバージョンでは、 データベースを新しいファイルにバックアップするSQLとして VACUUM INTO 'file.db'; も使えます。

パラメータ

destination

SQLite3::open でオープンされたデータベース接続

sourceDatabase

メインデータベースの場合、データベース名は "main" です。 一時的なデータベースの場合は、"temp" になります。 また、ATTACH 文の AS キーワードの後に指定された名前が使えます。

destinationDatabase

sourceDatabase に似ていますが、 destination で接続したコピー先のデータベースを表します。

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 既存のデータベースをバックアップする

<?php
// $conn は、既にオープンされた sqlite3 データベースへの接続です。

$backup = new SQLite3('backup.sqlite');
$conn->backup($backup);
?>