wpdb関数でWordPress上からデータベースを操作する


2016年9月1日

Wordpressって便利ですよね。
このサイトもWordpressを使って作成しています。

Wordpressって記事とかをDBに保存し、それを読み書きしている仕組みなんですが
Wordpressで、Wordpressが使用するDB以外のDBを参照したいと思う時、
例えば別の会社が作ったシステムと連動させたいとか、自作のプラグインを作る時、とか
どうしても、既存のテーブル以外のテーブルが必要だ、とかあるかと思います。

そういう時、mysql_queryとかでいちいちデータを取得したりコネクションを貼ったりする…のもいいんですが、
そんなやり方ではなく、Wordpressには実はデータベースを操作するwpdbという便利な関数がありますので、
この関数を使うのがスマートかと思います。せっかく用意されたものですし。

wpdbの基本定義

$wpdb->の後にパラメタを指定することで、データベース用のユーザIDやPW、ホストなどを取得できます。
ここで取得するユーザIDなどは、wp-config.phpで指定してあるものです。

ここではわかりやすいように、
$other_wpdbにはWordpressで使用する以外のテーブルの情報を保持するようにしています。

結果を取得してみる

get_resultsの中にSQL文を書くことで簡単に結果を取得することが出来ます。
$wpdb->prepare は、SQLクエリをエスケープするときに用います。
インジェクション対策として使っておく方が安全かと思います。

取得したresultsをforeachで回して、取得します。
$resultsは配列ではなく、オブジェクトなので
$value->列名(ここではrowとしています)で、値を取得できます。

あとはこれをechoなりprintなりしてやれば簡単に画面出力が出来るわけです。
こんなに簡単にできるのにmysql_query使って頑張るのアホらしくないですか?

データの挿入

データの更新

挿入も更新も簡単にできます。

SQL文を別ファイル化して、読みこむようにするとか、もっとカッコイイやり方もあると思いますが
最低限の操作は全てコレで出来るので、是非覚えておきたいところです。

関数リファレンスはここ → WordPress Codex