2

是否可以通过打开第二个连接来解决 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);
        }

最后输出的两个 print_r():Resource id #637Resource id #639

DbManager 是一个老梨数据访问层

注意:我会使用 mysql_unbuffered_query 标签,但我最近打开了一个赏金,将我置于“创建新标签特权”之下。

4

1 回答 1

1

根据 PMV 的建议,我正在写这个答案。总之,这是一个使用相同连接的不同数据库类的问题,即使它们报告了不同的资源 ID。有关更多信息,请参阅问题的评论。

于 2011-05-18T20:12:12.627 回答