zaiblab / mysql-backup
PHP library for backing up and restoring MySQL databases — fully compatible with CodeIgniter 4.
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 6
Open Issues: 0
pkg:composer/zaiblab/mysql-backup
Requires
- php: ^8.0
This package is not auto-updated.
Last update: 2025-10-11 16:27:14 UTC
README
A simple and developer-friendly way to back up and restore your MySQL database using PHP — now made to work smoothly with CodeIgniter 4.
Table of Contents
- Introduction
- About the Project
- Features
- Requirements
- Installation
- Usage
- Disclaimer
- Contributing
- Authors
- License
- Copyright
Introduction
Whether you're a beginner getting started or a developer who wants reliable backup features, this library is made to help you manage your database backups and restores in a simple and efficient way.
About the Project
This lightweight PHP library makes it easy to create clean and organized backups of your MySQL database — either full backups or selected tables. You can also restore your database using a .sql
file or a .zip
backup with just one line of code. It’s ideal for regular backups or moving your database from one place to another.
Features
- Back up the full database or just selected tables
- Restore from
.sql
files quickly and safely - Export backups with readable SQL structure
- Automatically names backup files using date/time
- Optionally compress backups into
.zip
format - Designed for use with CodeIgniter 4
Requirements
To use this library, make sure you have:
- PHP 8.0 or higher
- CodeIgniter 4
ZipArchive
extensions enabled- A working MySQL database
- Composer installed
Installation
Install it with Composer:
composer require zaiblab/mysql-backup
If needed, make sure Composer knows where to find the classes:
"autoload": { "psr-4": { "DatabaseBackupManager\\": "vendor/zaiblab/mysql-backup/src/" } }
Then refresh the autoload files:
composer dump-autoload
Usage
1. Set it up
use DatabaseBackupManager\MySQLBackup; $db = db_connect(); // CI4's database connection $backup = new MySQLBackup($db, WRITEPATH . 'backups');
2. Back up your database
// Back up everything $info = $backup->backup(); // Back up only specific tables $info = $backup->backup(['users', 'orders']); // Only save table structure (no data) $info = $backup->backup(null, false); // Create a zipped version of the backup $info = $backup->backup(null, true, true); if ($info) { echo "Backup file created: " . $info['file_name'] . "\n"; echo "File size: " . $info['file_size'] . " bytes\n"; }
3. Restore from a backup
// Path to your backup file $path = WRITEPATH . 'backups/backup_mydb-2025-06-21_081400.sql'; // Restore the backup $restored = $backup->restore($path); // Optionally: remove old tables before restoring $restored = $backup->restore($path, true); if ($restored) { echo "Database restored successfully!"; }
Disclaimer
This tool is shared in good faith, but please test everything before using it in production. Every setup is different, and it's always a good idea to double-check before relying on any tool for critical tasks.
By using this library, you agree that you're responsible for any outcomes related to your data or systems.
Last updated: June 21, 2025
Contributing
Suggestions, improvements, and bug reports are always welcome! Open an issue or create a pull request on GitHub.
Authors
- Ramazan Çetinkaya — @ramazancetinkaya
- Shahzaib — @zaiblab (Maintainer for CodeIgniter 4 version)
License
This project uses the MIT License. You’re free to use, modify, and share it however you'd like.
Copyright
© 2025 Ramazan Çetinkaya & Shahzaib. All rights reserved.