https://github.com/eugabrielsilva/sql-dumper
SQL backup dumper made in pure PHP
https://github.com/eugabrielsilva/sql-dumper
backup php sql
Last synced: 10 months ago
JSON representation
SQL backup dumper made in pure PHP
- Host: GitHub
- URL: https://github.com/eugabrielsilva/sql-dumper
- Owner: eugabrielsilva
- License: mit
- Created: 2022-10-19T12:26:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-25T13:06:00.000Z (about 3 years ago)
- Last Synced: 2025-08-19T07:21:32.625Z (10 months ago)
- Topics: backup, php, sql
- Language: PHP
- Homepage: https://packagist.org/packages/eugabrielsilva/sql-dumper
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SQLDumper
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.
### Requirements
- PHP version 7.4 or higher with **mysqli** 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
```php
// 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.
```php
$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->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; // Delete data from table before inserting
$db->insertType = 'INSERT'; // Insert type: INSERT, INSERT IGNORE or REPLACE
$db->safeMode = true; // Use IF EXISTS and IF NOT EXISTS clauses in dump
$db->chunkSize = 3000; // Number of rows to fetch per query (useful in 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 using `$db->connect()` method.
### Credits
Library developed and currently maintained by [Gabriel Silva](https://github.com/eugabrielsilva).