PDO MySQL连接问题(来自命令行)

4

我有一个php脚本,我想从MacOS终端后台运行。然而,我在连接数据库时遇到了问题,但当从浏览器运行完全相同的脚本时没有任何问题。

这是脚本:

<?php

echo "START";

try { 
    $con = new PDO("mysql:host=localhost;dbname=issues;charset=utf8", "root", "root"); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} 
catch(PDOException $e) { 
    throw new Exception($e->getMessage());
}

echo "here"; ?>

我正在终端上使用 php script.php 命令运行它。

带有 try catch 块的错误信息如下:

START

致命错误:Uncaught exception 'Exception' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Applications/MAMP/htdocs/issueManager3/notifications.php:11 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/issueManager3/notifications.php on line 11

不带 try catch 块的错误信息如下:

START

致命错误:Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /Applications/MAMP/htdocs/issueManager3/notifications.php:6 Stack trace:#0 /Applications/MAMP/htdocs/issueManager3/notifications.php(6): PDO->__construct('mysql:host=loca...', 'root', 'root')#1 {main} thrown in /Applications/MAMP/htdocs/issueManager3/notifications.php on line 6

它说找不到文件或目录,但它会输出“START”,所以绝对不是找不到脚本的问题。当从终端执行脚本时,是否缺少连接到数据库的内容?

任何帮助都将不胜感激。


@jeroen 请检查上面的编辑 - user3763741
@jeroen 使用 127.0.0.1 会产生相同的错误。 - user3763741
你是否知道,当你从CRON运行程序时,通常需要使用绝对路径?如果需要通过cron运行,那些在apache中容易工作的程序也需要绝对路径。确保你的cron运行可以找到所有所需的文件。查看所有的包含和要求。 - Hanky Panky
@Hanky웃Panky 使用脚本的绝对路径也无法运行...正如您所看到的,脚本中没有包含或需要任何内容。 - user3763741
你看过这个吗?https://dev59.com/nnE95IYBdhLWcg3wMrEB 和这个吗?https://dev59.com/e2Ij5IYBdhLWcg3wBAy5 - Hanky Panky
1个回答

0

尝试这段代码:

   <?php

    echo "START";

    try { 
        $con = new PDO("mysql:host=127.0.0.1;dbname=issues;charset=utf8", "root", "root"); 
        $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    } 
    catch(PDOException $e) 
{ 
       echo $e->getMessage();
    }

    echo "here"; ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接