PEAR DB Problem

PEAR DB Problem

am 03.11.2006 17:56:12 von Markus Kobligk

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

Re: PEAR DB Problem

am 03.11.2006 19:28:44 von Hadanite Marasek

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.

Re: PEAR DB Problem

am 04.11.2006 02:11:56 von Markus Kobligk

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

Re: PEAR DB Problem

am 05.11.2006 18:27:26 von Martin Lemke

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

Re: PEAR DB Problem

am 05.11.2006 18:38:52 von Markus Kobligk

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

Re: PEAR DB Problem

am 05.11.2006 20:54:00 von Michael Fesser

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

Re: PEAR DB Problem

am 06.11.2006 12:52:07 von 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?

Martin

Re: PEAR DB Problem

am 06.11.2006 13:31:11 von Michael Fesser

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

Re: PEAR DB Problem

am 06.11.2006 13:37:28 von Martin Lemke

Michael Fesser schrieb:

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

Ich bezog mich auf PDO.

Martin

Re: PEAR DB Problem

am 06.11.2006 13:41:17 von Michael Fesser

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

Re: PEAR DB Problem

am 06.11.2006 14:13:28 von Martin Lemke

Michael Fesser schrieb:

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

So hatte ich es verstanden.

Martin

Re: PEAR DB Problem

am 06.11.2006 14:38:27 von Claus Reibenstein

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

Re: PEAR DB Problem

am 07.11.2006 15:17:55 von Rudi Menter

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