【发布时间】:2019-07-19 03:56:58
【问题描述】:
也参考这篇文章(How to create database using php shell_exec and sql command line)
我已经按照那篇帖子中接受的答案,但我很好奇为什么 shell_exec 无法运行 mysql 代码。它只返回 NULL。
用户已经拥有 sudo 访问权限,当我手动将以下命令行复制到控制台日志中时,它可以工作。
$cmd = escapeshellcmd('sudo mysql -u root -e "create database somedb"');
$test = shell_exec($cmd);
var_dump($test);
编辑 1: 更新了 [username],如果 root 可能会导致一些问题
【问题讨论】:
-
你能发布你试图运行的命令吗?
-
请告诉我们 $cmd
-
很可能您需要在命令中使用完整路径
-
创建数据库的更好方法是在 PHP 中使用
mysqli或pdo而不是使用shell_exec。 -
抱歉是格式问题,cmd 被隐藏了,因为我将它与三元组 (`) 内联