php - 如何在 php 中使用 mysql dump

标签 php backup mysql

我尝试在命令行中使用 mysql dump 并且它有效。我如何在 php 中做到这一点? 我从网上找到了这段代码,并尝试了一下。

<?php
ob_start();

$username = "root"; 
$password = "mypassword"; 
$hostname = "localhost"; 
$sConnString = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL");


$connection = mysql_select_db("test",$sConnString) 
or die("Could not select DB");
$command ="C:\wamp\bin\mysql\mysql5.1.36\bin --add-drop-table --host=$hostname --databases test > C:\wamp\www\test\tester.sql"; 

我不太明白下面这段代码的含义: 系统($命令);

$dump = ob_get_contents(); 
ob_end_clean();



$fp = fopen("dump.sql", "w"); 
fputs($fp, $dump); 
fclose($fp);

?>

我将生成的 .sql 文件导入数据库,并从 phpmyadmin 收到此错误:

There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem

ERROR: Unknown Punctuation String @ 3
STR: :\
SQL: 
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;

SQL query:

E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;

MySQL said: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin' at line 1 

请帮忙,我想学习如何在 php 中执行此操作。

最佳答案

system($command); 执行外部 mysqldump 命令。

我不太明白你粘贴的脚本,它看起来像是两个脚本的混合体?

无论如何,转储文件中的语法错误可能意味着版本不匹配(目标服务器上运行的是 4.x?)。

使用兼容开关生成在目标版本中工作的转储文件,例如

--compatible=mysql40

关于php - 如何在 php 中使用 mysql dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3288177/

相关文章:

php - nginx - 未指定输入文件。 Laravel 应用程序

php - 从对 PHP 的 AJAX 调用检索 POST 数据

php - 使用 php 和 Codeigniter 备份 SQL 表

php - 未连接到数据库

php - 从open api导入数据并使用循环结合mysql循环

php - 什么时候使用 PDO 常量 PDO::PARAM_STR?

backup - 备份/镜像Github存储库

backup - 如何备份 Docker 容器及其数据卷?

mysql - 帮助(有点简单)MySQL JOIN

XAMPP : password for phpMyAdmin and mysql_connect different? 上的 php/mySQL