dedlfix: Übersetzungsfrage mysql_* zu PDO

Beitrag lesen

Tach!

PDO
$result = $db->query($query);
if ($result==FALSE)

Ist es wahr, dass $result false ist? if (!$result) reicht aus.

{
my_mysql_error($query); // notiert die fehlerhafte Query in der db und gibt neutrale Meldung aus, bevor das Script an dieser Stelle gestoppt wird.
     }
Ist das so korrekt gedacht?
Scheint mir irgendwie nicht ganz zufriedenstellend. PDO hat doch ansich eine eigene Fehlerbehandlung, oder?

Ja, und die solltest du auch verwenden. Da gibt es aber drei Arbeitsweisen, über die du dich erstmal informieren und für eine entscheiden solltest. Wenn deine Funktion my_mysql_error() intern mysql_error() oder andere mysql_*-Funktionen aufruft, dann wüsste ich nicht, ob dabei das gewünschte Ergebnis rauskommt. Diese Funktionen wollen ja eine Verbindungskennung und wenn sie keine bekommen, holen sie sich eine. Ob sie die von PDO verwaltete bekommen, wäre dann die Frage. Jedenfalls ist ein Mischmasch der Systeme nicht der richtige Weg.

Ich arbeite mit PDO zwar dann objektorientoiert und halbwegs db-übergreifend, aber es ist ziemlich viel Arbeit, das umzustricken und es gibt wenig sichtbare Vorteile für mich.

DB-übergreifend sollte man als Kriterium nicht überbewerten. Das ist sicher sinnvoll, wnen man Projekte erstellt, bei denen der Verwender die Entschiedung über das DBMS haben soll. Für Programmierer mit selbst verwaltetem Server ist das nachrangig. Warum sollte man zu einem anderen System wechseln, wenn man da auch nur haargenau denselben Funktionsumfang nutzt? Aus administrativer Sicht mag es da Gründe geben. Möchte man als Programmierer aber DBMS-spezifische Vorteile nutzen, muss man sowieso die betreffenden Teile umschreiben, da hilft eine DB-übergreifende Abstraktion nicht übermäßig viel. Sie könnte sogar das Vorhaben verhindern.

dedlfix.