我有一个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
致命错误:在/Applications/MAMP/htdocs/issueManager3/notifications.php:11中,消息“SQLSTATE [HY000] [2002]没有这样的文件或目录”的未捕获异常“异常” 堆栈跟踪:#0 {main} 在第11行的/Applications/MAMP/htdocs/issueManager3/notifications.php中引发
没有try catch块我得到的错误是: 开始 致命错误:/Applications/MAMP/htdocs/issueManager3/notifications.php:6中未捕获的异常'PDOException',消息'SQLSTATE [HY000] [2002]没有这样的文件或目录' 堆栈跟踪:#0 /Applications/MAMP/htdocs/issueManager3/notifications.php(6):PDO-&gt; __ construct('mysql:host = loca ...','root','root')#1 {main } 在第6行的/Applications/MAMP/htdocs/issueManager3/notifications.php中抛出
它说没有这样的文件或目录,但是它正在回显“START”,所以它肯定不是无法找到脚本的情况。在从终端执行脚本时,我是否遗漏了在连接数据库时需要添加的内容?
任何帮助表示赞赏。
答案 0 :(得分: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"; ?>