Když použijete dotaz bez vyrovnávací paměti, znamená to, že vaše sada výsledků je streamována ze serveru MySQL. Takže připojení, na kterém běží (bez vyrovnávací paměti) dotaz, je zaneprázdněné, dokud si nepřečtete poslední řádek dotazu. Ve vašem případě je připojení $MysqlConn
.
(Dotaz s vyrovnávací pamětí přenese celou sadu výsledků do paměti RAM vašeho php programu a uvolní připojení. Dotazy bez vyrovnávací paměti použijete, když se celá sada výsledků nevejde do paměti RAM).
Dotazy bez vyrovnávací paměti by měly být explicitně uzavřeny, když s nimi skončíte. Takže přidejte closeCursor()
zavolat
. Takhle.
while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
$order_ids[] = $row['order_id'];
}
$ordStat->closeCursor();
Není na škodu zavřít i dotazy s vyrovnávací pamětí. Je to dobrý zvyk.