Facebook にシェア
[`evernote` not found]
LINEで送る

wordpressではwpdbクラスを使うことでデータベースにアクセスできます。
しかし何らかの理由で別のデータベースにあるWordpressにアクセスする必要がでてくる場合があります。
そこでnew wpdbで新しくwpdbクラスを作成しようとしたのですが

$wpdb2 = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);

で新しいデータベースにアクセス出来るはずなのにうまく動きません(DB~は新しいデータベース情報)

なんでか色々調べて、どうも$wpdb2自体は作られている。SQLがうまく発行てきていないっぽい?
と思っていたところ原因発覚。
prefixが指定されていませんでした。
$wpdbにはconfig.phpで指定されているprefixが適用されるようですが、これがwpdb2とちがう場合は改めて指定する必要があります。
というわけで

$wpdb2 = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
$wpdb2->set_prefix("prefix_");

としたところ無事データベースにアクセスできました。
(今までもデータベースには接続されていてSQL発行に失敗していたのですが)