Мне бы хотелось, чтобы в моем приложении была ссылка, позволяющая мне загрузить дамп базы данных. ( à la phpmyadmin, на сервере ничего не сохраняется).
(я думал, что буду использовать php: // temp , чтобы избежать сохранения содержимого на сервере)
Но как создать файл дампа? То, как я это вижу, у меня есть два варианта:
1] использовать system () и mysqldump
$command = `mysqldump -u [username] -p [password] [databasename] | gzip > db.sql.gz`;
но как мне записать дамп на php: // temp?
2] Создайте файл самостоятельно и запишите его в php: // temp
$tables = mysql_query ("SHOW TABLES");
while ($i = mysql_fetch_array($tables))
{
$i = $i['Tables_in_'.$dbname];
$create = mysql_fetch_array(mysql_query ("SHOW CREATE TABLE ".$i));
echo("\n# -------------------------------------------------------- \n");
echo("\n# \n# Table structure for table `".$create['Table']."` \n# \n");
echo("\n".$create['Create Table'].";\n\n");
echo("# \n# Dumping data for table `".$create['Table']."` \n# \n\n");
$sql = mysql_query ("SELECT * FROM ".$i);
if (mysql_num_rows($sql)) {
while ($row = mysql_fetch_row($sql)) {
foreach ($row as $j => $k) {
$row[$j] = "'".mysql_escape_string($k)."'";
}
echo("INSERT INTO $i VALUES(".implode(",", $row).");\n");
}
}
}
Какой путь мне выбрать?