phpbar.de logo

Mailinglisten-Archive

[php] DB Lost Connection Probleme mit PHPLIB Klassen

[php] DB Lost Connection Probleme mit PHPLIB Klassen

Schmitt Joachim php_(at)_phpcenter.de
Thu, 25 Apr 2002 20:18:47 +0200


At 19:03 25.04.2002 +0200, you wrote:
>Hallo Liste,
>
>Habe folgendens Problem:
>Beim Verwenden von 4-5 Datenbank Anfragen auf der gleichen Seite mit 2-3
>Klassen Instanzen kommt es immer zu einem MySQL Error.
>Das gleiche mit nur 2 Anfragen funktioniert problemlos.
>Hatte jemand schonmals das gleiche Problem und weiss dazu eine Lösung ?
>
>Beispiel:
>************************
>// Instanzen erstellen
>$db  = new memberDB();
>$db1  = new linksDB();
>$db2  = new usersDB();
>
>Fehlermeldung:
>************************
>Database error:
>Invalid SQL: SELECT * FROM links ORDER BY Added DESC limit 0,40
>MySQL Error: 2013 (Lost connection to MySQL server during query)

Ich glaube das könnte dein problem sein.

Dies ist ein kurzer ausschnitt aus dem artikel "Webserver verstehen und
tunen" von Kristian Köhntopp
komplett nachzulesen unter http://www.koehntopp.de/kris/artikel/webtune/.

PHP geht bei der Verwaltung von MySQL-Datenbankverbindungen übrigens von
der falschen Annahme aus, daß eine Datenbankverbindung zustandslos ist und
daher gefahrlos wiederverwendet werden könne, wenn ein zweiter Connect mit
derselben Username/Paßwort/Hostname-Kombination gemacht wird

Obwohl hier zwei verschiedene MySQL-Datenbankverbindungen geöffnet werden
sollen, wird in beiden Fällen dieselbe Link-ID zurückgeliefert. Es handelt
sich also in beiden Fällen um dieselbe Datenbankverbindung. Dies wird in
dem Moment zum Problem, wo der Zustand der Datenbank, der per Link-ID
verwaltet wird, sich ändert. In MySQL gehört zu diesem Zustand der Name der
aktuellen logischen Database, mit der gearbeitet wird. Wird diese Database
mittels "use <databasename>" oder mit Hilfe von mysq_select_db() verändert,
wirkt sich die Änderung auf die beiden vermeintlich unabhängigen
Datenbankverbindungen aus. Abhilfe schafft hier nur, entweder nur mit einer
einzigen Datenbank zu arbeiten oder mit Hilfe von mehreren
unterschiedlichen Benutzernamen unterschiedliche Datenbankverbindungen zu
erzwingen.


php::bar PHP Wiki   -   Listenarchive