我尝试使用shell_exec
脚本连接到数据库,但我得到了:
mysqli :: mysqli():( HY000 / 2002):没有这样的文件或目录。
当使用没有shell_exec
的脚本时(例如:按提交按钮),它可以很好地工作。
在调用者php文件中:
shell_exec('php /Users/Desktop/save.php param')
称为php文件:
$a=$argv[1];
saveonDB($a);
我真的不知道为什么在shell_exec
调用该函数时无法正常工作。参数正确传递。
由于
更新
我让这个例子更简单:
connection.php:
function connect()
{
$servername = "localhost";
$username = "root";
$password = "root";
$dbname= "db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
else{
echo "connected";
}
}
connect();
caller.php:
echo exec ("php /Users/Desktop/connection.php");
直接执行connection.php时,它会显示:
"连接"
从caller.php执行时,它会保持:
"连接失败:没有这样的文件或目录"
答案 0 :(得分:0)
我只知道发生了什么。似乎在通过shell_exec
执行php时使用mysql.sock
。使用MAMP时连接端口不同。将端口放在服务器名称参数上可以解决问题。
感谢所有输入。