[英]How to create a backup for database
I try to create a backup script, with PHP and MySQL, but I have some problems. 我尝试使用PHP和MySQL创建备份脚本,但是我遇到了一些问题。 This is what I have done so far:
到目前为止,这是我所做的:
$sql="SHOW DATABASES";
$query=mysql_query($sql,$connect);
$num_rows=mysql_num_rows($query);
echo "Baze de date:".$num_rows;
while ($row = mysql_fetch_assoc($query)) {
$sql2="SHOW TABLES FROM ".$row['Database'];
$query2=mysql_query($sql2, $connect);
echo "<h3>".mysql_num_rows($query2)." Tabele in: ".$row['Database']."</h3>";
while( $row2 = mysql_fetch_assoc($query2) ) {
foreach($row as $rand) {
$sql3="CREATE DATABASE `'$rand'_backup";
$query3=mysql_query($sql3,$connect);
foreach($row2 as $rand2) {
$sql4="CREATE TABLE `'$sql3'_backup`.`'$rand2'` SELECT * FROM `'$rand'`.`'$rand2'`";
$query4=mysql_query($sql4,$connect);
}
}
}
}
As you can see, first I list the existing databases and the tables of each database. 如您所见,首先列出现有数据库和每个数据库的表。 Then I make two
foreach
, so it can create a database for each database listed, and so on for the tables. 然后,我创建两个
foreach
,以便它可以为列出的每个数据库创建一个数据库,以此类推。 But is not working. 但是没有用。
Any idea of what seems to be the problem? 对似乎是什么问题有任何想法吗?
EDIT:I know that mysql is deprecated,but i have to use it. 编辑:我知道不建议使用mysql,但我必须使用它。
All you want to take backup of your database. 您只想备份数据库。 Below commands should do a work for you.
下面的命令应该为您工作。
On Linux 在Linux上
/usr/bin/mysqldump -u{USERNAME} -p -h{HOST_NAME} {DATABSE_NAME} > {FILE_NAME}.sql
On windows 在窗户上
C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump -u{USERNAME} -p -h{HOST_NAME} {DATABSE_NAME} > {FILE_NAME}.sql
Try below code snippet to fix your script: 请尝试以下代码片段来修复脚本:
$sql = "SHOW DATABASES";
$query = mysql_query($sql, $connect);
$num_rows = mysql_num_rows($query);
echo "Baze de date:" . $num_rows;
while ($row = mysql_fetch_assoc($query)) {
$sql2 = "SHOW TABLES FROM " . $row['Database'];
$query2 = mysql_query($sql2, $connect);
echo "<h3>" . mysql_num_rows($query2) . " Tabele in: " . $row['Database'] . "</h3>";
$sql3 = "CREATE DATABASE `".$row['Database']."_backup`";
echo '<br> $sql3 = > ' . $sql3 . "<br><hr />";
$query3=mysql_query($sql3,$connect);
while ($row2 = mysql_fetch_assoc($query2)) {
foreach ($row2 as $rand2) {
$sql4 = "CREATE TABLE `".$row['Database']."_backup`.`".$rand2."` SELECT * FROM `".$row['Database']."`.`$rand2`";
echo '<br> $sql4 = > ' . $sql4 . "<br><hr />";
$query4=mysql_query($sql4,$connect);
}
}
}
不要使用$row['Database']
,而要使用数值索引为0的mysql_fetch_row()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.