PEAR DB Problem

Hallo zusammen,

ich möchte für meinen Datenbankzugriff PEAR DB benutzen:
(Windows XP SP2, XAMPP 1.5.4a, PHP5)

require_once 'DB.php';
$dsn = 'mysql://user:user [at] localhost/test';
$db = DB::connect($dsn);

Der Aufruf von DB::connect ergibt allerdings einige E_STRICT-Warnungen,
u.a. dass nicht statische Methoden nicht statisch aufgerufen werden
sollten. Eine Warnung bezieht sich auf meine Zeile mit dem
connect-Aufruf, die übrigen beziehen sich auf Code innerhalb der
Pear-Klassen (u.a. auch wegen deprecated-Geschichten...).

Im Pear-Manual zu connect steht wörtlich "Diese Methode sollte statisch
aufgerufen werden.." und nun bekomme ich Warnungen, dass man diese
Methode nicht statisch aufrufen soll. Das ist etwas widersprüchlich.

Sobald ich über den PHP-Switch von XAMPP auf PHP4 umschalte funktioniert
alles einwandfrei ohne Warnungen. Das will ich aber nicht, weil ich in
PHP5 entwickle. Laut dem Pear DB-Quellcode soll das ganze ja mit beiden
Versionen kompatibel sein, ist es anscheinend aber nicht.

Wer weiss Rat?

Grüße,
..\\arkus
Markus Kobligk [ Fr, 03 November 2006 17:56 ] [ ID #1523607 ]

Re: PEAR DB Problem

Ganz einfach: die Methode müsste static definiert sein, das geht aber
erst seit PHP5. Demzufolge wirft PHP5 auch eine E_STRICT, wenn eine
nicht statische /definierte/ Methode static aufgerufen wird.

Der Code ist aber für PHP4 geschrieben. Dort gibt es kein
public/private/static/protected, was die Fehler erklärt, auch die
deprecated, die vermutlich durch var $property hervorgerufen werden
Es ist so gesehen dennoch kompatibel mit PHP5, weil es ja problemlos
funktioniert.

Ansonsten würde ich eher mal einen Blick auf PDO werfen.

> Der Aufruf von DB::connect ergibt allerdings einige E_STRICT-Warnungen,
> u.a. dass nicht statische Methoden nicht statisch aufgerufen werden
> sollten. Eine Warnung bezieht sich auf meine Zeile mit dem
> connect-Aufruf, die übrigen beziehen sich auf Code innerhalb der
> Pear-Klassen (u.a. auch wegen deprecated-Geschichten...).
>
> Im Pear-Manual zu connect steht wörtlich "Diese Methode sollte statisch
> aufgerufen werden.." und nun bekomme ich Warnungen, dass man diese
> Methode nicht statisch aufrufen soll. Das ist etwas widersprüchlich.
>
> Sobald ich über den PHP-Switch von XAMPP auf PHP4 umschalte funktioniert
> alles einwandfrei ohne Warnungen. Das will ich aber nicht, weil ich in
> PHP5 entwickle. Laut dem Pear DB-Quellcode soll das ganze ja mit beiden
> Versionen kompatibel sein, ist es anscheinend aber nicht.
Hadanite Marasek [ Fr, 03 November 2006 19:28 ] [ ID #1523608 ]

Re: PEAR DB Problem

Hadanite Marasek schrieb:
> Ansonsten würde ich eher mal einen Blick auf PDO werfen.

Danke für den Tipp, da bleibt mir wohl nix anderes übrig...

Gruß,
..\\arkus
Markus Kobligk [ Sa, 04 November 2006 02:11 ] [ ID #1524475 ]

Re: PEAR DB Problem

Markus Kobligk schrieb:

>> Ansonsten würde ich eher mal einen Blick auf PDO werfen.
>
> Danke für den Tipp, da bleibt mir wohl nix anderes übrig...

Das klingt nicht sehr begeistert, dabei wartet auf Dich eine bessere
Performanz.

Martin
Martin Lemke [ So, 05 November 2006 18:27 ] [ ID #1525042 ]

Re: PEAR DB Problem

Hallo,

Martin Lemke schrieb:
> Das klingt nicht sehr begeistert, dabei wartet auf Dich eine bessere
> Performanz.

das ist gut zu wissen, danke.

Ich bin deswegen nicht begeistert, weil ich eine fremde Applikation
weiterentwickle, die PEAR DB benutzt. Wenn ich das jetzt auf PDO
umstelle, müsste ich einiges im Code verändern da der DB-zugriff dort
nicht zentral gehalten ist, das wollte ich halt gerne vermeiden.
Ansehen werd ich es mir auf jeden Fall...

Gruß,
..\\arkus
Markus Kobligk [ So, 05 November 2006 18:38 ] [ ID #1525044 ]

Re: PEAR DB Problem

..oO(Markus Kobligk)

>Ich bin deswegen nicht begeistert, weil ich eine fremde Applikation
>weiterentwickle, die PEAR DB benutzt. Wenn ich das jetzt auf PDO
>umstelle, müsste ich einiges im Code verändern da der DB-zugriff dort
>nicht zentral gehalten ist, das wollte ich halt gerne vermeiden.

OK, das kann aufwändig sein.

>Ansehen werd ich es mir auf jeden Fall...

Für neue Applikationen definitiv das Mittel der Wahl. Nicht unbedingt
performanter als andere Interfaces, aber weit flexibler und sicherer.

Micha
Michael Fesser [ So, 05 November 2006 20:54 ] [ ID #1525046 ]

Re: PEAR DB Problem

Michael Fesser schrieb:

> Nicht unbedingt performanter

Warum sollte eine binär einkompilierte Schnittstelle nicht unbedingt
performanter sein als eine, die auf zu interpretierenden Skripten beruht?

Martin
Martin Lemke [ Mo, 06 November 2006 12:52 ] [ ID #1526122 ]

Re: PEAR DB Problem

..oO(Martin Lemke)

>Michael Fesser schrieb:
>
>> Nicht unbedingt performanter
>
>Warum sollte eine binär einkompilierte Schnittstelle nicht unbedingt
>performanter sein als eine, die auf zu interpretierenden Skripten beruht?

OK, ich hab's mal wieder zu kurz formuliert... Ich bezog mich auf die
anderen in PHP vorhandenen Schnittstellen zur Datenbank (mysql, mysqli).
In Bezug auf PEAR:DB, ADODB etc. hast Du natürlich recht.

Micha
Michael Fesser [ Mo, 06 November 2006 13:31 ] [ ID #1526123 ]

Re: PEAR DB Problem

Michael Fesser schrieb:

> In Bezug auf PEAR:DB, ADODB etc. hast Du natürlich recht.

Ich bezog mich auf PDO.

Martin
Martin Lemke [ Mo, 06 November 2006 13:37 ] [ ID #1526124 ]

Re: PEAR DB Problem

..oO(Martin Lemke)

>Michael Fesser schrieb:
>
>> In Bezug auf PEAR:DB, ADODB etc. hast Du natürlich recht.
>
>Ich bezog mich auf PDO.

Arrrgh ... ;)

Wir kriegen das schon noch auf die Reihe:

[...] binär einkompilierte Schnittstelle -> PDO
|...| auf zu interpretierenden Skripten -> PEAR:DB und Co.

Oder nich?

Micha
Michael Fesser [ Mo, 06 November 2006 13:41 ] [ ID #1526125 ]

Re: PEAR DB Problem

Michael Fesser schrieb:

> [...] binär einkompilierte Schnittstelle -> PDO
>|...| auf zu interpretierenden Skripten -> PEAR:DB und Co.
>
> Oder nich?

So hatte ich es verstanden.

Martin
Martin Lemke [ Mo, 06 November 2006 14:13 ] [ ID #1526126 ]

Re: PEAR DB Problem

Martin Lemke schrieb:

> Michael Fesser schrieb:
>
>> Nicht unbedingt performanter
>
> Warum sollte eine binär einkompilierte Schnittstelle nicht unbedingt
> performanter sein als eine, die auf zu interpretierenden Skripten beruht?

Es ist ein ziemlich billiger Trick, Sätze aus dem Zusammenhang zu
reißen, zu verstümmeln und dann Kommentare zu dieser Verstümmelung
abzugeben, die mit der ursprünglichen Aussage nichts zu tun haben.
Ehrlicher wäre es gewesen, den _kompletten_ Satz zu zitieren und unter
Berücksichtigung des Kontextes zu kommentieren.

Der komplette Satz lautete: "Nicht unbedingt performanter als andere
Interfaces, aber weit flexibler und sicherer". Von Skripten steht da nichts.

Gruß. Claus
Claus Reibenstein [ Mo, 06 November 2006 14:38 ] [ ID #1526127 ]

Re: PEAR DB Problem

Claus Reibenstein schrieb:

> Es ist ein ziemlich billiger Trick, Sätze aus
> dem Zusammenhang zu reißen,

Natürlich, ziemlich.

> zu verstümmeln und dann Kommentare zu dieser Verstümmelung
> abzugeben, die mit der ursprünglichen Aussage nichts zu tun haben.

Entsetzlich, aber leider in der (Tages-)Politik durchaus üblich...

Was denkst du, war das "billige" am Motiv des Sünders?


ps. bist du das hier, sieht doch gar nicht so dauerfrustriert aus!?
http://www.vsv-benthe.de/30personen/clausreibenstein.jpg
fG
--
Rudi Menter [ Di, 07 November 2006 15:17 ] [ ID #1527426 ]
PHP » de.comp.lang.php.datenbanken » PEAR DB Problem

Vorheriges Thema: nach Ausgleichsbelegen filtern
Nächstes Thema: Re: MySql - auto_increment