使用PHP导入Mysql

时间:2011-08-16 14:37:33

标签: php mysql

我正在尝试使用PHP中的system命令导入mysqldump文件。我就是这样做的 -

$command = "F:\System 1.1\server\mysql\bin\mysql.exe -h localhost -P 7188 -u username -ppassword <dbname> < F:\System 1.1\backup.sql";
system($command,$return)

$ return的值是1.语法是否不正确?另外,还有其他方法可以通过PHP导入完整的数据库吗?

(我给出了mysql.exe的完整路径,因为最终将使用该程序的用户可能没有安装mysql并出现在路径中。)

2 个答案:

答案 0 :(得分:0)

一些想法:

  • 如果函数返回1(true),则表示成功...我假设您已检查它不起作用?
  • MySql中有source命令,例如use database; source path_to_file;虽然在这种情况下这可能没有用,因为你想直接运行mysql.exe。

答案 1 :(得分:0)

您的文件路径在F:\System 1.1中包含空格,这可能会导致PHP出现问题。您应该将它们用引号括起来,如下所示。也可能需要使用双反斜杠作为路径分隔符。

$command = "\"F:\System 1.1\server\mysql\bin\mysql.exe\" -h localhost -P 7188 -u username -ppassword <dbname> < \"F:\System 1.1\backup.sql\"";
//---------^^^^---------------------------------------^^^^ Also in the backup.sql path...

当PHP执行您的不带引号的命令时,它会看到:

F:\System

并失败,因为这是一个无效的命令。