Gdy używasz zapytania niebuforowanego, oznacza to, że zestaw wyników jest przesyłany strumieniowo z serwera MySQL. Tak więc połączenie, na którym działa (niebuforowane) zapytanie, jest zajęte, dopóki nie odczytasz ostatniego wiersza zapytania. W twoim przypadku połączenie to $MysqlConn
.
(Buforowane zapytanie pochłania cały zestaw wyników do pamięci RAM twojego programu php i zwalnia połączenie. Używasz niebuforowanych zapytań, gdy cały zestaw wyników nie mieści się w pamięci RAM).
Zapytania niebuforowane powinny zostać wyraźnie zamknięte, gdy z nimi skończysz. Więc dodaj closeCursor()
zadzwoń
. W ten sposób.
while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
$order_ids[] = $row['order_id'];
}
$ordStat->closeCursor();
Nie zaszkodzi też zamykanie buforowanych zapytań. To dobry nawyk.