如何让ZEND运行PHP,将php作为cli脚本运行时使用zend_db时出现问题

博主在尝试使用Zend Framework v1.7.6创建一个通过cron在夜间运行的管理脚本时,遇到了数据库连接问题。错误信息为'Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2)。尽管Web应用程序正常运行,但在CLI环境中执行时出现此错误。博主展示了部分代码,包括数据库配置、日志记录以及SQL查询。他们正在寻求解决在命令行脚本中使用Zend_Db时无法连接到数据库的问题,并希望获得关于在CLI中使用Zend Framework的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试向Zend框架项目添加一些管理脚本,最终将通过cron在夜间运行。

不过,我在尝试使用Zend_DB时遇到了脚本的第一个问题。我目前正在进行一个非常简单的SQL调用,以获取一些结果并使用

VARYDUMP()

但是,我收到以下错误消息:

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

到目前为止,脚本如下:

chdir(dirname(__FILE__));

error_reporting(E_ALL|E_STRICT);

ini_set('display_errors', 1);

date_default_timezone_set('Europe/London');

//directory setup and class loading

set_include_path('.' . PATH_SEPARATOR . '../library/' . PATH_SEPARATOR . '../application/models/'

. PATH_SEPARATOR . '../library/MyApp/'

. PATH_SEPARATOR . get_include_path());

include "Zend/Loader/Autoloader.php";

$autoloader = Zend_Loader_Autoloader::getInstance();

$autoloader->setFallbackAutoloader(true);

//start sessions

Zend_Session::start();

//read configuration data

$config = new Zend_Config_Xml('../application/config/config.xml', 'app');

//we create an ability to capture errors and write them to an error log if there are problems.

$log = new Zend_Log();

$writer = new Zend_Log_Writer_Stream($config->log->logfile);

$log->addWriter($writer);

$filter = new Zend_Log_Filter_Priority((int)$config->log->level);

$log->addFilter($filter);

//we now need to get the list of graduates that need to have their CV's removed from the search engine

$date = new Zend_Date();

$date->sub(3, Zend_Date::MONTH);

echo $date->get(Zend_Date::ISO_8601);

$sql = "SELECT userid, guid FROM users WHERE lastlogin = ? AND active = 1";

$db = Zend_Db::factory($config->database);

try{

$results = $db->fetchAll($sql, $date->get(Zend_Date::ISO_8601));

var_dump($results);

}catch(Zend_Db_Exception $dbe){

$log->debug($dbe->getMessage()."\n".$dbe->getTraceAsString());

}

//close database.

if($db->isConnected()){

$db->closeConnection();

}

我错过了什么?我知道Zend_配置对象中的数据库连接设置工作正常,Web应用程序运行正常,没有问题。

我目前正在使用Zend框架v1.7.6运行这个。

还有在cli脚本中使用zend框架的一般技巧吗?

多谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值