Backup one database to another database

- « SQLite3

- SQLite3::busyTimeout »

- PHP Manual
- SQLite3
- Backup one database to another database

# SQLite3::backup

(PHP 7 >= 7.4.0, PHP 8)

SQLite3::backup — Backup one database to another database

### Description

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

SQLite3::backup() copies the contents of one database into another, overwriting the contents of the destination database. It is useful either for creating backups of databases or for copying in-memory databases to or from persistent files.

Tip

As of SQLite 3.27.0 (2019-02-07), it is also possible to use the statement `VACUUM INTO 'file.db';` to backup the database to a new file.

### Parameters

`destination`

  A database connection opened with SQLite3::open().

`sourceDatabase`

  The database name is `"main"` for the main database, `"temp"` for the temporary database, or the name specified after the `AS` keyword in an `ATTACH` statement for an attached database.

`destinationDatabase`

  Analogous to `sourceDatabase` but for the `destination`.

### Return Values

Returns `true` on success or `false` on failure.

### Examples

Example #1 Backup an existing database

    <?php
    // $conn is a connection to an already opened sqlite3 database

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