我正在使用CakePHP 2.4.1,我需要直接访问PDO才能从我的MySQL数据库中逐行提取一组记录。
这是我正在使用的一段代码,它产生了问题:
// Get PDO access
$this->_pdo = $this->Event->getDataSource();
try {
// Start transaction
$this->_pdo->begin();
// All the past events
$stm = $this->_pdo->prepare("SELECT `id` FROM `events` WHERE `stop_time` < '" . date('Y-m-d H:i:s') . "'");
// Loop through the events
if( $stm->execute() ) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// ....
}
}
// Commit transaction
$this->_pdo->commit();
} catch (Exception $e) {
// Rollback transaction
$this->_pdo->rollback();
CakeLog::write('error', $e );
}
但是,一旦我启动脚本,我就会收到此错误消息
PHP Fatal error: Call to undefined method Mysql::prepare()
但我已经看到这个框架支持PDO,特别是prepare()函数。 CakePHP PDO Documentation
有什么想法吗?
非常感谢
答案 0 :(得分:4)
实际上你正在使用的课程是http://api.cakephp.org/2.4/class-DataSource.html
那里没有prepare()
方法。用它来获取PDO
$myPDO = $this->SomeModel->getDataSource()->getConnection();