WordPress(以下、WP)でのDB操作の覚書です
WPのお作法として$wpdbでconnectとexecute操作する。
global $wpdb;
$wpdb->query(
$list_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts" )
);
$wpdbを接続や接頭辞として使用出来るが独自追加のテーブルなどは
wp-includes/wp-db.php (class-wpdb.phpの場合などもあるがwp-db.phpの中身みて判断)
$tables
に追加することで$wpdbを接頭辞として扱うことが出来る。
しかしWPのバージョンアップで書き換わる。
書き換わらないdb.phpにも追加(wp-contentフォルダにdb.phpが無い場合は作成してリライドすることでバージョンアップにも対応可)する方法もあるが、メンテナンスや今後の修正箇所のことを考えるとテーブル名は普通に指定したほうが良さそう。
セキュリティーのこととか考えると接頭辞は$wpdbで指定したほうがいいんだろうけど、本当にセキュリティーを気にするならWPを使うなという感じがしないでもない。
PDOでconnectしなくても$wpdb->query[insert / update / delete]なんかで済むのはとてもラク。
global $wpdb;
// 更新
$wpdb->query(
$wpdb->update( 'sample_use',
array(
'use_date' => '9999-12-31',
'use_time' => 'ampm'
),
array(
'id' => '1'
)
)
);
// 追加
$wpdb->query(
$wpdb->insert('sample_use',
array(
'use_date' => '1234-12-31',
'use_time' => 'pm'
)
)
);
insertやupdateなんかは内部でprepareされているのでインジェクション関連も問題なさそう。
connectとSQL実行部分に関しては$wpdbで
それ以外はSQL構文なんかにはWordPressの作法は入れないほうが見通しが良い気がする。
関連記事