Использование нескольких соединений с mysql_unbuffered_query

Можно ли обойти ограничение 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() в конце вывода: идентификатор ресурса #637 идентификатор ресурса # 639

DbManager - старый слой доступа к данным груши

Примечание. Я бы использовал тег mysql_unbuffered_query, но недавно открыл награду, которая поставила меня ниже уровня "создавать новые теги".

1 ответ

Решение

По предложению PMV я пишу этот ответ. Таким образом, проблема была в том, что разные классы баз данных использовали одно и то же соединение, хотя они сообщали разные идентификаторы ресурсов. Смотрите комментарии к вопросу для получения дополнительной информации.

Другие вопросы по тегам