1

我正在使用 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 文档

有任何想法吗?

非常感谢

4

1 回答 1

4

实际上您使用的类是http://api.cakephp.org/2.4/class-DataSource.html那里 没有prepare()方法。使用它来获取 PDO

 $myPDO = $this->SomeModel->getDataSource()->getConnection();
于 2013-11-14T23:33:38.550 回答