Error bei PHP Abfrage der MySQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Error bei PHP Abfrage der MySQL

    Bin gerade aus dem Urluab zurück, und wollte mich in die Admin Seite meiner Community einloggen . da kommt folgende Fehlermeldung:

    Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried to allocate 12 bytes) in /home/www/web12/html/vote/inc/db.php on line 57

    Hat jemand eine Idee was ich nun machen soll, bzw. was da genau los ist und wie ich das reparieren kann?????


    auf Lini 57 steht:
    for($count=0,$data =array();$row=mysql_fetch_array($results);$count++)
    $data[$count] = $row;

    Das ganze Sciprt lautet:
    <?


    $DEBUG=0;
    class MySQL
    {
    var $ConID ="";
    var $User="xxx";
    var $Pass="xxx";
    var $Server="xxx";
    var $Name="xxx";
    var $UnID="xxx";

    function init ()
    {
    $conn=mysql_connect($this->Server,$this->User,$this->Pass);

    if (!$conn)
    $this->error("Verbindung fehlgeschlagen");

    if (!mysql_select_db($this->Name,$conn))
    $this->error("Datenbank-Anwahl gescheitert");

    $this->ConID=$conn;

    return true;
    }

    function error($text)
    {
    $no = mysql_errno();
    $msg = mysql_error();
    echo "[$text] ( $no : $msg )<BR>
    ";
    }

    function select($sql="")
    {
    if($GLOBALS["DEBUG"]) echo $sql."<br>";

    if(empty($sql))
    return false;

    if(empty($this->ConID))
    return false;

    $results=mysql_query($sql,$this->ConID);
    if($no=mysql_errno())
    $this->error("Select failed");

    if( (!$results) or (empty($results)) )
    {
    mysql_free_result($results);
    return false;
    }

    for($count=0,$data =array();$row=mysql_fetch_array($results);$count++)
    $data[$count] = $row;

    mysql_free_result($results);

    return $data;
    }

    function insert($sql="")
    {
    if($GLOBALS["DEBUG"]) echo $sql."<br>";

    if(empty($sql))
    return false;

    if(empty($this->ConID))
    return false;

    $results = mysql_query($sql,$this->ConID);

    if(!$results)
    return false;

    $id=mysql_insert_id($this->ConID);
    if($id)
    $results=$id;

    return $results;
    }

    function query($sql="")
    {
    if($GLOBALS["DEBUG"]) echo $sql."<br>";

    if(empty($sql))
    return false;

    if(empty($this->ConID))
    return false;

    $results = mysql_query($sql,$this->ConID);

    if(!$results)
    return false;

    return $results;
    }

    }

    $db = new MySQL;

    if(!$db->init())
    {
    echo "<p>Kann Datenbank nicht öffnen!</p>";
    exit;
    }

    ?>

  • #2
    problem gelöst ......

    habe eine tabelle der DB verkleinert und nun komm ich wieder in den Admin rein. Frage mich aber totzdem wie man das problem lösen könnte ohne diie DB zu "verkleinern" ?

    Kommentar


    • #3
      Re: problem gelöst ......

      vermutlich liefert einfach deine query zu viele datensätze zurück ... da gibt es evtl. noch optimierungspotential/-bedarf.


      wie sieht denn die query aus, die du an der stelle ausführst?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: Error bei PHP Abfrage der MySQL

        Original geschrieben von SpainWEBI

        Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried to allocate 12 bytes) in /home/www/web12/html/vote/inc/db.php on line 57

        Hat jemand eine Idee was ich nun machen soll, bzw. was da genau los ist und wie ich das reparieren kann?????


        auf Lini 57 steht:
        for($count=0,$data =array();$row=mysql_fetch_array($results);$count++)
        $data[$count] = $row;
        1. was soll denn $data = array() in einer Bedingung der for-Schleife?
        2. Wan hört die Schleife auf?

        Die Vermutung liegt nahe, dass du eventuell mit Endlosschleife zu tun hast

        Kommentar


        • #5
          Re: Re: Error bei PHP Abfrage der MySQL

          1. was soll denn $data = array() in einer Bedingung der for-Schleife?
          nee, steht doch im init-teil ... obwohls da wohl nicht stehen müßte, es wird eh in der nächsten zeile erzeugt ...
          2. Wan hört die Schleife auf?
          wenn
          PHP-Code:
          $row=mysql_fetch_array($results
          nicht true ist.

          zugegeben, die for-schleife ist recht sinnlos, da array-elemete eh automatisch nummeriert werden, aber funktionieren sollte es schon ...

          hast du schonmal while an der stelle probiert? dürfte nix bringen, aber, man weiß ja nie ...

          ansonsten, versuch auch mal mit dem & operator an verschiedenen stellen zu agieren ...
          Zuletzt geändert von derHund; 10.10.2004, 22:23.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Re: Re: Re: Error bei PHP Abfrage der MySQL

            Original geschrieben von derHund
            nee, steht doch im init-teil ... obwohls da wohl nicht stehen müßte, es wird eh in der nächsten zeile erzeugt ...
            wenn
            PHP-Code:
            $row=mysql_fetch_array($results
            nicht true ist.
            klar, weiß ich das , nur für mich ist sowas unfug . Stattdessen
            PHP-Code:
            $data = array();
            while (...) 
            $data[] = $row
            ist sinnvoller und übersichtlicher. Ich glaube eigentlich nicht, dass es ander Schleife hängt, sondern viel mehr an dem Array. Wenn er select * from ... hat, und die Tabelle 1000 Spalten und 'ne Mio. Zeilen hat, dann sollte man sich nicht wundern

            Kommentar

            Lädt...
            X