eugabrielsilva/sql-dumper

SQL backup dumper made in pure PHP

Maintainers

Package info

github.com/eugabrielsilva/sql-dumper

Homepage

pkg:composer/eugabrielsilva/sql-dumper

Statistics

Installs: 79

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.0 2026-03-19 18:21 UTC

This package is auto-updated.

Last update: 2026-03-19 18:26:35 UTC


README

This is a PHP package designed to generate an SQL dump from a MySQL database using pure PHP, without needing to rely on mysqldump or other tools.

Latest Version Total Downloads License PHP Version

Requirements

  • PHP version 7.4 or higher with pdo_mysql and mbstring extensions enabled
  • MySQL server and a user with SHOW and SELECT privileges

Installation

Through Composer:

composer require eugabrielsilva/sql-dumper

Manual installation:
Copy src/SQLDumper.php and include it in your script.

Usage

// Include Composer packages if not yet
require 'vendor/autoload.php';

// Create SQLDumper instance
$db = new \GabrielSilva\SQLDumper\SQLDumper();

// Set your server settings (optional)
$db->host = 'localhost';
$db->user = 'root';
$db->password = '';
$db->db = 'app';

// Generate dump to an SQL file
$db->dumpToFile('backup.sql');

// You can also dump to a string
$dump = $db->dumpToString();

Options

There are a few options that you can use to modify SQLDumper, these options are properties from the instance that can be overwritten.

Note: values shown below are the default ones.

$db->host = 'localhost'; // Server hostname
$db->user = 'root'; // Username to connect to the database
$db->password = ''; // User password
$db->db = 'app'; // Database name
$db->port = 3306; // Server port
$db->charset = 'utf8'; // Database charset
$db->includes = []; // Array of tables to include in dump, empty for all
$db->excludes = []; // Array of tables to exclude from dump
$db->includesData = []; // Array of tables to include data in dump, empty for all
$db->excludesData = []; // Array of tables to exclude data from dump
$db->createTables = true; // Include CREATE TABLE statements in dump
$db->createDatabase = false; // Include CREATE DATABASE statement in dump
$db->dropTables = false; // Include DROP TABLE statements in dump
$db->dropDatabase = false; // Include DROP DATABASE statement in dump
$db->insertData = true; // Include data in dump
$db->deleteData = false; // TRUNCATE data from tables before inserting
$db->insertType = 'INSERT'; // Insert type: INSERT, INSERT IGNORE or REPLACE
$db->safeMode = true; // Use IF EXISTS and IF NOT EXISTS checks in dump
$db->chunkSize = 3000; // Number of rows to fetch per query (useful on large tables)

Important

If you change any of the server options, like host, user, password, db, port or charset, you need to refresh the database connection by calling $db->connect() method.

Credits

Package developed and maintained by Gabriel Silva.