sql >> Database teknologi >  >> RDS >> Mysql

PDO fejler med for mange poster, bufferforespørgsler

Når du bruger en forespørgsel uden buffer, betyder det, at dit resultatsæt bliver streamet ind fra MySQL-serveren. Så forbindelsen, som den (ubuffrede) forespørgsel kører på, er optaget, indtil du læser den sidste række af forespørgslen. I dit tilfælde er forbindelsen $MysqlConn .

(En bufferforespørgsel slurrer hele resultatsættet ind i dit php-programs RAM og frigør forbindelsen. Du bruger ubuffrede forespørgsler, når hele dit resultatsæt ikke passer i RAM).

Ikke-buffrede forespørgsler skal lukkes eksplicit, når du er færdig med dem. Så tilføj en closeCursor() ring . Sådan.

while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
    $order_ids[] = $row['order_id'];
}
$ordStat->closeCursor();

Der er ingen skade i at lukke bufferforespørgsler også. Det er en god vane.




  1. Advarsel:PDOStatement::execute():SQLSTATE[HY093]:Ugyldigt parameternummer:parameter blev ikke defineret i...filtekst

  2. MySQL SUM-forespørgsel er ekstremt langsom

  3. Java-program og mySQL-forbindelsesproblem:Ingen passende driver fundet

  4. Mappestruktur til lagring af millioner af billeder?