Knud: select funktioniert nicht immer?

Hi!

Hab mal wieder ein kleines Problemchen mit meinem PHP-Script.

Vielleicht erst zur "Geschichte":

Ich habe ein paar MySQL-Tabellen, die ich beim Aufruf der Seite mittels
PHP und Javascript in ein mehrere Arrays einlese.
Damit bin ich dann in der Lage auf Formulareingaben dynamisch zu reagieren
und z.B. mit der Eingabe einer Artikelnummer im nächsten Feld die
Bezeichnung rauszuschmeissen.

Funktionierte bislang auch wunderbar und ist seit bereits 3 Monaten
erfolgreich im Einsatz. Zunehmend greifen nun immer mehr Leute lesend und
schreibend auf die Tabellen zu.

Jetzt ist es bereits ein paar Mal vorgekommen (gestern und heute), dass
mein Script offensichtlich keine Daten gelesen bekommen hat und infolge
dessen sind die Arrays leer.

Meine Frage ist nun, ob das eventuell tatsächlich mit der gewachsenen
Anzahl von Benutzern zusammenhängt. Wie kann ich das regeln?
Es wird nicht nur 1 Tabelle nicht gelesen, sondern alle Tabellen. Alle
Arrays sind dann leer.

Vielleicht noch ein Problem in diesem Zusammenhang (ohne einen neuen Thread
aufzumachen): Auch erst in den vergangenen Tagen kommt es sporadisch vor,
dass sich Benutzer nicht mehr anmelden können. Das Kennwort wird nicht erkannt.
Das Kennwort ist mit md5 codiert und wird mit dem Inhalt der Tabelle verglichen.
Seltsamerweise ist das Problem bei diesem Benutzer, tritt der Fehler erstmal auf,
dauerhaft. Ich kann das nur wieder beheben, indem ich das Kennwort lösche.
Es sieht fast so aus, als ob sich der Verschlüsselungsalgorithmus bei diesen
Leuten ändert (obwohl das natürlich quatsch ist!). Das neue Kennwort läuft
aber wieder ohne Einschränkung.

Okay, 2 Probleme, 2 mal Ratlosigkeit in meinem Gesicht.

Aber vielleicht habt Ihr ja ne Idee oder ne Ahnung oder ne Vision?
Ne Lösung wäre natürlich noch toller *g*.

Bis dahin,

Gruß,

Knud

  1. Hi!

    ReHI!

    Eine steigende Anzahl von Usern ist immer problematisch ;-) (Außer man verdient daran.. *g)

    [IMHO] Doch nun ein paar Vermutungen/Vorschläge:

    +) Wurde in jedem php File, wo eine DB Verbindung hergestellt wurde diese auch wieder beendet?

    +) Hast Du im Code Abfangmechanismen für Fehler eingebaut, wie z.B.:
       @mysql_connect($this->host,$this->usr,$this->pwd) or error();

    +) Minimiere die SELECT Anweisung (Performance Steigerung)
       Verwende statt SELECT * from ... SELECT vorname,zuname from ...
       also nur die Daten die auch wirklich benötigt werden.

    +) Können SELECT Anweisungen zusammengefasst werden?
       Keine Anweisungen in schleifen verpacken
       ( for($i=0;$i<100;$i++) mysql_query($sqlSTMT); )

    +) Schau dir mal die Server Variablen / Status an, könne aufschlußreich sein für die Fehlerbehebung, vorallem die werte für
    Max_used_connections,Aborted_clients,Aborted_connects,max_connections (eventuell erhöhen),...

    so, ich hoffe dir damit ein klein wenig zu helfen....

    lg webmonk