Mailinglisten-Archive |
++++ Sebastian Tobias Mendel genannt Mendelsohn wrote on 12.12.2003 10:02 ++++ >> (2) Ich hatte überleget im Hauptskript eine persistente Verbindung >> (mysql_pconnect()) zu erzeugen, dass ist nicht gerade edel aber dann >> bin ich fein 'raus. > > > das hat nichts mit connect oder pconnect zu tun! das hat es! eine mit pconnect geöffnete Verbindung lässt sich nicht mit einem ziwschenzeitlichen close schliessen, sie bliebe folglich bis zum Skriptende bestehen - und würde nicht vom eventuellen Aufruf eines close in der function beeinträchtigt. Deshalb hatte ich die Lösung als zwar praktikabel aber nicht eben schön bezeichnet. > deine Verbidnung bleibt so lange bestehen bis zu einem close oder dem > ende des Scripts egal connect oder pconnect _außer_ bei einem pconnect > bleibt die verbindung auch nach dem ende des scripts bestehen und kann > durch die nächsten scripte wieder verwendet werden, das pconnect > greift dann auf die bereits in früheren scripten hergestellte > pconnect-verbindung zu! > > > nimm lieber ein normales connect (ohne 'p'), es soll wohl später > irgendwann kein pconnect mehr geben, zumindest bei den mysqli_funktionen das ist ein Kriterium pconnect nicht zu benutzen > (3) In der dclp-faq steht auch, dass man mittels eines Parameters ab > Version 4.2 eine neue Verbindung erzwingen kann - ich teste erstmal das. > >> >> Kreative vorschläge zur Schon-bestehend-Prüfung(1)? Das wäre ja >> irgendwie am schicksten . . . > > > am schicksten wäre die vorgeschlagene include_once() oder > require_once()-Lösung! naja, um auf Sebastians 2.-letztes mail einzugehen: um autark zu beleiben bringe ich die db-connetion einfach beim logging mit, ich bin damit davon unabhängig was im hauptscript passiert. Da ich einen offiziellen Weg gefunden habe eine Verbindung quasi private herzustellen und auch wieder zu beenden, werde ich mir auf diese Weise die Autarkie erhalten. >> if(!mysql_select_db($hq_db_name, $log_link)) die("Kann die Datenbank >> $hq_db_name nicht erreichen."); > > > ja genau, da tritt das Problem auf! > > p.s. die Verbindungsparamter in Konstanten zu hinterlegen ist auch > sicherer! Konstanten können wie schon geschrieben nicht aus versehen > (oder mit 'absicht') überschrieben werden! das ist zukünftig sicher gesetzt, momentan lautet die Lösung wie folgt: $log_link = mysql_connect($hq_db_host, $hq_db_user, $hq_db_pass, true); der vierte Parameter ist seit V 4.2 neu, erzwingt eine eigene neue Verbindung und diese kann man dann auch getrost wieder beenden. Ist nicht die 'most advanced' Lösung, aber offiziell im Sinne der Doku und jetzt am wenigsten aufwändig. Auch wenn ich zukünftig Konstanten implementiere werde ich den Weg, eine private Verbindung zu öffnen, wahrscheinlich beibehalten um o.g. Autarkie zu erhalten. Aber jetzt nochmal zu einem der ursprünglichen Themen: es muss doch einen Weg geben, mit dem ich prüfen kann ob bereits eine db-connection besteht? Und zwar in einer Zeile! Werde mal noch etwas im manual wühlen. A+ Henning
php::bar PHP Wiki - Listenarchive