1

私は CakePHP 2.4.1 を使用しており、MySQL DB から行ごとに一連のレコードを取得するために、PDO に直接アクセスする必要があります。

これは私が使用していて、問題を引き起こしているコードです:

            // 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 に答える