phpbar.de logo

Mailinglisten-Archive

[php] Namensräume

[php] Namensräume

Henning Heil lists at h-quadrat.com
Fre Dez 12 12:16:17 CET 2003


++++ 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