This is a php version of linux's mysqldump in terminal "$ mysqldump -u username -p...".
- PHP 5 >= 5.3.0
- PDO
With autoloading/Composer:
<?php
use Ifsnop\Mysqldump as IMysqldump;
$dump = new IMysqldump\Mysqldump('database', 'username', 'password');
$dump->start('storage/work/dump.sql');
?>
Without autoloading/Composer:
<?php
include_once(dirname(__FILE__) . '/src/Ifsnop/Mysqldump/Mysqldump.php');
$dump = new Ifsnop\Mysqldump\Mysqldump( 'database', 'username', 'password');
$dump->start('storage/work/dump.sql');
?>
/**
* Constructor of Mysqldump. Note that in the case of an SQLite database
* connection, the filename must be in the $db parameter.
*
* @param string $db Database name
* @param string $user SQL account username
* @param string $pass SQL account password
* @param string $host SQL server to connect to
* @param string $type SQL database type ('mysql', 'sqlite', ...)
* @param array $dumpSettings SQL database settings
* @param array $pdoSettings PDO configured attributes
*
* @return null
*/
public function __construct(
$db = '',
$user = '',
$pass = '',
$host = 'localhost',
$type = 'mysql',
$dumpSettings = array(),
$pdoSettings = array()
)
$dumpSettingsDefault = array(
'include-tables' => array('table1', 'table2'),
'exclude-tables' => array('table3', 'table4'),
'compress' => 'GZIP',
'no-data' => false,
'add-drop-database' => false,
'add-drop-table' => false,
'single-transaction' => true,
'lock-tables' => false,
'add-locks' => true,
'extended-insert' => true,
'disable-foreign-keys-check' => false,
'where' => '',
'no-create-info' => false
);
$pdoSettingsDefaults = array(PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => false
);
// missing settings in constructor will be replaced by default options
$this->_pdoSettings = self::array_replace_recursive($pdoSettingsDefault, $pdoSettings);
$this->_dumpSettings = self::array_replace_recursive($dumpSettingsDefault, $dumpSettings);
- include-tables
- Only include these tables
- exclude-tables
- Exclude these tables
- compress
- GZIP, BZIP2, NONE
- no-data
- add-drop-database
- add-drop-table
- single-transaction
- lock-tables
- add-locks
- extended-insert
- disable-foreign-keys-check
- where
- no-create-info
- PDO::ATTR_PERSISTENT
- PDO::ATTR_ERRMODE
- PDO::MYSQL_ATTR_INIT_COMMAND
- PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
{
"require": {
"ifsnop/mysqldump-php": "dev-master",
}
}
or
{
"require": {
"ifsnop/mysqldump-php": "1.0.*",
}
}
- Write unit tests.
Format all code to PHP-FIG standards. http://www.php-fig.org/
This project is open-sourced software licensed under the MIT license
Originally based on James Elliott's script from 2009. http://code.google.com/p/db-mysqldump/