Querdenkender Webworker mit WordPress-Affinität

WordPress + Datenbank = WPDB

Ich kann mir gut vorstellen, wie es dazu kommt, dass es so viele Hacks für WordPress gibt, die auf die Datenbank bauen und nicht die von WordPress bereitgestellten Datenbankfunktionalitäten benutzen. Aber nur, weil etwas augenscheinlich funktioniert, muss es nicht richtig sein bzw. wird es nicht unbedingt auf anderen Installationen arbeiten.

Auch beim Entwicklen von Software bzw. Komponenten für WordPress kann man mit dem Hammer alles passend machen. Den Eindruck habe ich zumindest, wenn ich so einige Konstrukte sehe, die in den einschlägigen Foren gern mit der Beschreibung „Geht nicht“ konstatiert werden. Dabei könnten – gerade beim Arbeiten mit der Datenbank – Fehler im Vorfeld vermieden werden, in dem man auf Bewährtes setzt.

WordPress stellt eine Klasse zur Verfügung, die all die Funktionionalitäten bereitstellt, die man zum Arbeiten mit der Datenbank benötigt. Die Klasse WPDB sollte jedoch nicht direkt aufgerufen werden. Zur Laufzeit existiert bereits eine Instanz, welche man über die globale Variable $wpdb direkt nutzen kann. Es ist wichtig zu wissen, dass man über diese Funktionalitäten nicht nur auf die WordPress-Tabellen zugreifen kann, sondern auf alle Inhalte der Datenbank, die in der WordPress-Konfiguration angegeben wurde.

Neben der generischen Methode get_results, die der PHP-Funktion mysql_query vorzuziehen ist, gibt es noch einige weitere Methoden, die sich um speziellere Abfrageergebnisse kümmern bzw. die Manipulation der Datenbank erlauben, um Datensätze einzufügen, zu ändern oder zu löschen. An dieser Stelle sei zudem auf die WordPress-Mechanismen hingeweisen, die einen Schutz gegen SQL-Injections bieten.

Aus Sicherheitsgründen wird oft empfohlen, das Präfix der WordPress-Tabellen zu ändern. Ich teile das voll und ganz, eine konkrete Abfrage der Tabelle wp_options wird dann aber nicht mehr funktionieren. WPDB referenziert die eigenen Tabellen aber bereits, sodass sich ein SQL-Statement viel generischer formulieren lässt. Ansonsten gibt es noch die Eigenschaft $wpdb->prefix, die das konfigurierte Präfix ebenfalls kennt.

Das könnte Dich auch interessieren:

Deine Meinung ist uns wichtig

*