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();
?>
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();
?>
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;
?>
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
oderzerofill
. - $col_offset
(int)
Die 0-indexierte Spalte der letzten Abfrage.
Beispiel
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();
?>
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. Kannall
,global
,ms_global
,blog
, oderold 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
austrue
gesetzt wurde.
Zurückgegeben wird ein Array voller Tabellennamen.
Beispiel
<?php
/**
* @var wpdb $wpdb
*/
global $wpdb;
var_dump( $wpdb->tables( 'all' ) );
?>
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.