gpt4 book ai didi

Php exec() 与 mysql 导入不起作用

转载 作者:行者123 更新时间:2023-11-29 11:47:03 25 4
gpt4 key购买 nike

我使用 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 是一个空数组

最佳答案

我在 stackoverflow 上找不到这个问题的明确答案,所以这里是我从各种来源拼凑起来的所有信息,以使其最终发挥作用,希望它可以节省一些时间。下面是一些使用 php exec 执行 mysql 导入并传递 sql 导入文件名变量的代码。它在 Windows 7 下的 WAMP 服务器上运行。请注意 mysql 路径的反斜杠(不同版本的 WAMP 的路径会有所不同)和 sql 导入文件路径的正斜杠。还有引号内命令周围的括号,用于获取消息输出的重定向。最后是输出“2>&1”的重定向。


$sqlFile='sqlfile.sql';
$cmd="(C:\wamp64\bin\mysql\mysql5.7.14\bin\mysql --user=USER --password=PASSWORD --host=localhost --database db1 db2 < C:/wamp64/www/site/$sqlFile) 2>&1";
exec($cmd, $output, $return_var);

var_dump($return_var);
echo "return_var is: $return_var" . "\n";
var_dump($output);

关于Php exec() 与 mysql 导入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34750310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com