doushi7819 2016-01-01 19:50
浏览 42
已采纳

使用shell_exec时连接被拒绝

I'm trying to connect to a database using a script by shell_exec, but I'm getting:

mysqli::mysqli(): (HY000/2002): No such file or directory.

When using the script without shell_exec (example: by submit button) it works perfectly.


On the caller php file:

shell_exec('php /Users/Desktop/save.php param')

Called php file:

$a=$argv[1];
saveonDB($a);

I really don't know why isn't working when calling the function by shell_exec. The parameters are being passed correctly.

Thanks


UPDATE:

I made the example simpler:

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");

When executing the connection.php directly, it says:

"connected"

When executing from caller.php it stays:

"Connection failed: No such file or directory"

  • 写回答

1条回答 默认 最新

  • doubingjian2006 2016-01-01 21:45
    关注

    I just figure out what happened. It seems that when executing via shell_exec php uses mysql.sock. The connection port is different when using MAMP. Placing the port on the server name parameter fix the problem.

    Thanks for all input.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么在stm32门禁成品上增加记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 解riccati方程组