Ich erhalte diese Fehlermeldung:PHP while-Schleife Speicherfehler
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate > 32 bytes) in path/to/1phpquery.php on > line 24
Linie 24 ist
while ($r = $mysqli->query($query)) {
Der vollständige Code ist:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$instr = "CCBOT";
require("dbconnect.php");
$query = 'SELECT LgSpecNet, SmSpecNet, CommNet FROM cot WHERE Ticker = "$instr" LIMIT 5';
if ($result = $mysqli->query($query)) {
$table = array();
$table['cols'] = array(
array('label' => 'Large Spec Net', 'type' => 'number'),
array('label' => 'Small Spec Net', 'type' => 'number'),
array('label' => 'Commercial Net', 'type' => 'number')
);
$rows = array();
while ($r = $mysqli->query($query)) {
$temp = array();
$ra = $r->fetch_assoc();
$temp[] = array('v' => (int) $ra['LgSpecNet']);
$temp[] = array('v' => (int) $ra['SmSpecNet']);
$temp[] = array('v' => (int) $ra['CommNet']);
$rows[] = array('c' => $temp);
}
$result->free();
$table['rows'] = $rows;
$jsonTable = json_encode($table);
echo $jsonTable;
}
$mysqli->close();
?>
Reduzieren Sie die Menge an Daten, die Sie holen, oder erhöhen die PHP-Speicherlimit ... Gibt es Gründe, die Sie haben baue dieses intermediate Array sowieso? kannst du nicht einfach '$ rows [] = $ r'? –
Normalerweise holen Sie das Ergebnis in der while (...-> fetch()), Sie wiederholen die "Abfrage" nicht immer und immer wieder. – progysm
Danke. Mark B, es fragt nur nach 5 Zeilen. –