Использование нескольких соединений с mysql_unbuffered_query - PullRequest
2 голосов
/ 13 мая 2011

Можно ли обойти ограничение 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 Ответ

1 голос
/ 19 мая 2011

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

...