19.6. Weitere Datenbank-Methoden

In der Klasse wpdb finden sich noch weitere interessante Methoden, die Ihnen bei der Umsetzung Ihres Plugins sehr nützlich sein könnten. Ich möchte Ihnen einige hier kurz vorstellen.

Fehlerausgabe an- und ausschalten

Sehr nützlich ist die Methode show_errors() und hide_errors() die das An- und Abschalten der Fehlerausgabe erlaubt.

<?php
/**
 * @var wpdb $wpdb
 */
global $wpdb;

// Anschalten
$wpdb->show_errors();

// Ausschalten
$wpdb->hide_errors();
?>

Auf Github ansehen

Letzten Fehler ausgeben

Unabhängig ob die Ausgabesteuerung von Fehlern aktiviert ist oder nicht lässt sich mit der Methode print_error() der jeweils letzte Fehler ausgeben:

<?php
/**
 * @var wpdb $wpdb
 */
global $wpdb;

$wpdb->print_error();
?>

Auf Github ansehen

Letzten Fehler auslesen

Auslesen des letzten Datenbankfehlers klappt natürlich genauso. Und zwar per Direktzugriff auf die Eigenschaft last_error:

<?php
/**
 * @var wpdb $wpdb
 */
global $wpdb;

$last_error = $wpdb->last_error;
?>

Auf Github ansehen

Spalteninformation abrufen

Mit der Methode get_col_info() lassen sich Informationen einer Spalte abrufen. Dazu ist es allerdings nötig, dass zuvor eine Operation durchgeführt wurde.

<?php
class wpdb {
	function get_col_info( $info_type = 'name', $col_offset = -1 ) {
		...
	}
}
?>

Dabei gilt:

  • $info_type (string|null)
    Ein String, der folgende Werte annehmen kann: name, table, def, max_length, not_null, primary_key, multiple_key, unique_key, numeric, blob, type, unsigned oder zerofill.
  • $col_offset (int)
    Die 0-indexierte Spalte der letzten Abfrage.

Beispiel

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Cache leeren

WordPress speichert alle Abfragen standardmäßig in einen Cache um später eine schnellere Antwort zu erhalten. Um diesen Cache zu leeren, führen Sie die Methode flush() aus:

<?php
/**
 * @var wpdb $wpdb
 */
global $wpdb;

$wpdb->flush();
?>

Auf Github ansehen

WordPress Tabellen auslesen

Mit tables() lassen sich alle Datenbank-Tabellen ausgeben, die von WordPress aktiv genutzt werden. Es handelt sich dabei jedoch nur um die WordPress-eigenen Tabellen. Andere, von Drittherstellern, hinzugefügte Tabellen tauchen in dieser Liste nicht auf.

<?php
class wpdb {
	function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {
		...
	}
}
?>

Dabei gilt:

  • $scope (string)
    Beschreibt, welche Tabellen zurückgegeben werden sollen. Kann all, global, ms_global, blog, oder old tables sein.
  • $prefix (bool)
    Ob das Präfix mit ausgegeben werden soll (true) oder nicht (false).
  • $blog_id (int)
    Die ID des Blogs dessen Tabellen zurückgegeben werden sollen. Wird allerdings nur benutzt, wenn $prefix aus true gesetzt wurde.

Zurückgegeben wird ein Array voller Tabellennamen.

Beispiel

<?php
/**
 * @var wpdb $wpdb
 */
global $wpdb;

var_dump( $wpdb->tables( 'all' ) );
?>

Auf Github ansehen

Gibt zurück:

array(11) {
  ["users"]=>
  string(8) "wp_users"
  ["usermeta"]=>
  string(11) "wp_usermeta"
  ["posts"]=>
  string(8) "wp_posts"
  ["comments"]=>
  string(11) "wp_comments"
  ["links"]=>
  string(8) "wp_links"
  ["options"]=>
  string(10) "wp_options"
  ["postmeta"]=>
  string(11) "wp_postmeta"
  ["terms"]=>
  string(8) "wp_terms"
  ["term_taxonomy"]=>
  string(16) "wp_term_taxonomy"
  ["term_relationships"]=>
  string(21) "wp_term_relationships"
  ["commentmeta"]=>
  string(14) "wp_commentmeta"
}

Hinweis
Tabellennamen lassen sich direkt mit der Tabellen-Spezifischen Eigenschaft abrufen. Zum Beispiel können Sie die Tabelle wp_options auch über den Aufruf $wpdb->options weiter nutzen.