Man*_*anu 1 php mysql backup symfony1
我想在我的应用程序中有一个链接,允许我下载我的数据库的转储.(点菜的phpmyadmin,没有获取保存在服务器上).
(我以为我会用php:// temp来避免在服务器上保存东西)
但是如何创建转储文件?我看到它的方式我有两个选择:
1]使用system()和mysqldump
$command = `mysqldump -u [username] -p [password] [databasename] | gzip > db.sql.gz`;
Run Code Online (Sandbox Code Playgroud)
但是如何在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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该走哪条路?
你应该采取的第一个选择
mysqldump旨在为DB备份或创建sql文件.
一个例子
$command = "mysqldump -u ".USER." -p'".PASSWORD."' ".DATABASE." ". $value." -r \"".$backupPath."/".$backupFile."\" 2>&1";
$res=system($command);
Run Code Online (Sandbox Code Playgroud)