【发布时间】:2016-04-17 11:03:09
【问题描述】:
我正在使用 php exec() 导入上传的 sql 文件。
$cmd = "mysql -h localhost -u forum_user --password=1234 import_forum < C:\Users\Josh\AppData\Local\Temp\import-1452620686.sql"
exec($cmd, $output, $worked);
return $worked;
问题是,它实际上并没有执行任何东西,因为没有任何东西被导入到数据库中。但是,如果我将此命令复制并粘贴到终端中,它会很好地导入。
这似乎是我的 windows 机器本地的一个问题,因为脚本在我们的 linux 环境中运行良好。
另外,$worked 变量返回为 1,这应该意味着命令执行没有问题。但事实并非如此。
这是某种权限问题吗?我错过了什么?
编辑 1
mysql 路径已设置并正常工作。
编辑 2
实际路径为 C:\Users\Josh\AppData\Local\Temp\import-1452620686.sql
编辑 3
$output 是一个空数组
【问题讨论】:
-
这是 mysql -h localhost -u forum_user --password=1234 import_forum
-
不知道真正的路径,但
\t是制表符转义序列,所以我猜你的 Windows 路径分隔符没有被转义。 -
尝试运行 mysql -h localhost -u forum_user --password=1234 import_forum
-
您使用的是哪个版本的 xampp、wamp 或 php?
-
在文件路径中,尝试将每个反斜杠加倍,例如。
C:\\Users\\path\\to\\file.sql
标签: php mysql windows shell command