суббота, 14 сентября 2013 г.

Mysql дамп средствами php без shell для таблиц

Mysql дамп средствами php без shell для таблиц






// Соединяемся с базой

function dump_sql($dump_dir)
{
$tables = "SHOW TABLES"; // Получаем список таблиц
$res = mysql_query($tables)
or die("Ошибка при выполнении запроса: ".mysql_error());
while($table = mysql_fetch_row($res)) {
// Sql файл таблицы (таблица.sql)
$fp = fopen($dump_dir."/".$table[0].".sql", "a");
if ($fp)
{
// Чистим таблицу (будет в дампе)
$query = "TRUNCATE TABLE `".$table[0]."`;\n";
$un=false;
fwrite ($fp, $query);
// Получаем данные из таблицы
$rows = 'SELECT * FROM `'.$table[0].'`';
$r = mysql_query($rows)
or die("Ошибка при выполнении запроса: ".mysql_error());
while( $row = mysql_fetch_row($r) ) {
$query = "";
foreach ( $row as $field ) {
if ( is_null($field) )
$field = "NULL";
else
$field = "'".mysql_escape_string( $field )."'";
if ( $query == "" )
$query = $field;
else
$query = $query.', '.$field;
}
// Вставка данных (будет в дампе)
$query = "INSERT INTO `".$table[0]."` VALUES (".$query.");\n";
$un=true;
fwrite ($fp, $query);
}
fclose ($fp);
if (!$un)
unlink($dump_dir."/".$table[0].".sql");
}
}
}

# Вызываем функцию указав папку в которую сохранять дамп
dump_sql('/puth/to/my/db');



Комментариев нет:

Отправить комментарий

Постоянные читатели

Популярные сообщения