Использование нескольких соединений с 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 я пишу этот ответ. Таким образом, проблема была в том, что разные классы баз данных использовали одно и то же соединение, хотя они сообщали разные идентификаторы ресурсов. Смотрите комментарии к вопросу для получения дополнительной информации.