wpdbで新しいデータベースにアクセスする時の注意点
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発行に失敗していたのですが)