Authentication




Cancel OK
B!コメントする  2023-10-13 15:51:00 by admin

WordPressでのDB操作

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の作法は入れないほうが見通しが良い気がする。


WordPress 自分用 覚書き  

  • コメント
  • コメントはまだありません