2

2 番目の接続を開くことで、一度に 1 つのクエリを実行するという mysql_unbuffered_query() の制限を回避することは可能ですか?

たとえば、次のコードでエラーが発生します。

mysql_select_db(): 前のバッファリングされていないクエリからすべての行を最初にフェッチせずに呼び出された関数

        $feedData =  mysql_unbuffered_query($sql, $this->_unbufferedDbManager->db->connection);

        while ($record = mysql_fetch_assoc($feedData)) {
            File::fputcsv($this->_fileHandle, $record, $this->delimiter, $this->enclosure);       

            $sql = "UPDATE   transactions
                    SET      feed_transmit_date = '$this->today'
                    WHERE    transaction_id = " . $record['transaction_id'];
            $this->dbManager->DbQuery($sql);

            print_r($this->_unbufferedDbManager->db->connection);
            print_r($this->dbManager->db->connection);
        }

最後に出力される 2 つの print_r(): Resource id #637Resource id #639

DbManager は古い pear データ アクセス レイヤーです。

注: 私は mysql_unbuffered_query タグを使用していましたが、最近、「新しいタグを作成する特権」を下回る報奨金をオープンしました。

4

1 に答える 1

1

PMVの提案で、私はこの答えを書いています。要約すると、異なるリソース ID が報告されていても、同じ接続を使用する異なるデータベース クラスの問題でした。詳細については、質問のコメントを参照してください。

于 2011-05-18T20:12:12.627 に答える