Hilfe ! Buffer Overflow
sqliter
- php
hallo!
als datenbank verwende ich sqlite und im such-script scheint es probleme mit der großen DB und PHP zu geben.
liegt das an meinem script? vermutlich ja... doch woran genau?
$db = new SQLiteDatabase($database);
$result = $db->query("SELECT * FROM $tabname");
$i=0;
while ($result->valid())
{
$row = $result->current();
$content['id']=$row['id'];
...
}
$result->next();
$i++;
}
hier die fehlermeldung für die zeile $result = $db->query("SELECT * FROM $tabname");
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 13763 bytes) in /opt/lampp/htdocs/rss/index.php on line 11
hier die fehlermeldung für die zeile $result = $db->query("SELECT * FROM $tabname");
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 13763 bytes) in /opt/lampp/htdocs/rss/index.php on line 11
Liegt an Dein Skript! Und auch nicht!
Versuch mal die 8388608 auf mindestens 16 MB Speicher hochzusetzen.
(Serverseitig)
Du baust ein Array auf der über das limit hinweggeht.
Bzw. sauber programieren ;) unset kann schon helfen.
unset($variable_die_ich_nicht_brauch);
Simone
das ändert nix daran, denn der fehler tritt schon vor der schleife auf in der zeile:
$result = $db->query("SELECT * FROM $tabname");
die größe der sqlite datenbank datei ist momentan gute 11MB und wird noch wesentlich größer.
allerdings kann ich so, wie die schleife aufgebaut ist, nicht auf die obige zeile verzichten.
wie zu vermuten ist, kann ich die config nicht verändern...
denn das ganze soll ja auch beim webhoster klappen, wo ich keinen server hab.
hat sonst jemand ne idee?
Hello,
das ändert nix daran, denn der fehler tritt schon vor der schleife auf in der zeile:
$result = $db->query("SELECT * FROM $tabname");
Dann solltest Du mal überlegen, ob Du tatsächlich alle Felder (Spalten) und alle Datensätze (Zeilen) der Tabelle benötigst ;-)
In Deinem Query fehlt nämlich die Qualifizierte Fieldlist und das Filter (Where-Statement, Limit, ...)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom