Php 命令行中的PDO MySQL连接问题
我有一个php脚本,我想在MacOs终端的后台运行。我在连接数据库时遇到问题,但是从浏览器运行完全相同的脚本时没有问题 下面是脚本:Php 命令行中的PDO MySQL连接问题,php,mysql,shell,pdo,terminal,Php,Mysql,Shell,Pdo,Terminal,我有一个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_EXCEP
<?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块的错误是:
开始
致命错误:未捕获异常“exception”,在/Applications/MAMP/htdocs/issueManager3/notifications.php:11中显示消息“SQLSTATE[HY000][2002]无此类文件或目录”
堆栈跟踪:#0{main}
在第11行的/Applications/MAMP/htdocs/issueManager3/notifications.php中抛出
在没有try-catch块的情况下得到的错误是:
开始
致命错误:未捕获异常“PDOException”,在/Applications/MAMP/htdocs/issueManager3/notifications.php:6中显示消息“SQLSTATE[HY000][2002]无此类文件或目录”
堆栈跟踪:#0/Applications/MAMP/htdocs/issueManager3/notifications.php(6):PDO->u构造('mysql:host=loca…','root','root')#1{main}
在第6行的/Applications/MAMP/htdocs/issueManager3/notifications.php中抛出
它说没有这样的文件或目录,但它回显了“开始”,所以绝对不是找不到脚本的情况。从终端执行脚本时,是否缺少需要添加到数据库连接中的内容
谢谢你的帮助 请尝试以下代码:
<?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"; ?>
@jeroen检查编辑above@jeroen使用127.0.0.1会产生相同的错误您是否知道,当您从CRON运行时,通常需要绝对路径?如果需要通过cron运行,那么可以轻松使用apache的东西需要绝对路径。确保您的cron运行可以找到所需的所有文件。查看所有包含和requires@Hanky웃Panky用脚本的绝对路径运行它也不起作用。。。正如你所看到的,脚本中没有包含或要求。你经历过这个吗?这个呢?