投稿記事をselect文で条件を指定してデータをとってくる話 wordpressのためのsql

前回までのおさらい

前回はwordpressのデータベースに接続して、wp_postsの全データを取得する話でしたね。
投稿記事をselect文で全データをとってくる話 wordpressのためのsql
今回は、全データではなく、条件を指定して、データを取得する話をしていきたいと思います。

$sql = "SELECT * FORM wp_posts";

前回のおさらいですが、上記が投稿記事を全部取得するsqlですね。
今回は上記のsqlに条件を追加していきます。

$sql = "SELECT * FROM wp_posts WHERE id = 1";

通常、あまりidをしてすることは少ないと思いますが、今回はわかりやすくidにします。
wp_postsのidの構造にはUNSIGNED,auto_incrementが付与されています。
簡単に説明するとUNSIGNEDは、マイナスの値は入りませんということです。厳密には意味が違いますが・・・ アニメ、ノイタミナ枠「全てがFになる」でもUNSIGNEDが出ましたね!
auto_incrementはデータが投稿されたら自動で記事にindexをつけてくれます。indexとはコミックなどでつかう1巻、2巻の数字の部分ですね。番号に特に意味はないけど順番に番号を割り振ってくれます。

前置き

wp_postsのid=1は「WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !」の記事ですね。
前回はwordpressの関数でデータベースに接続していましたが、今回からは

データベース接続クラスを作成した話(2年くらい前に作成、少し編集した)

このクラス(DBManager)を使っていきたいと思います。そのクラス(DBManager)の説明もこのブログで解説をしていきますので、ご安心ください。

DBManagerクラスの使い方

DBManagerクラスにselect関数(select())があると思います。

$dbm = new DBManager();
$id = 1;
$sql="SELECT * FROM wp_posts WHERE id = ".$id;
$result = $dbm->select($sql);

使い方としてはまず

$dbm = new DBManager();

DBManagerクラスのインスタンスを生成します。
クラスの関数を使うときは必ずインスタンスを生成しなくてはいけません。
インスタンスの生成はnew クラス名();で生成できます。
そのクラスの関数を使うには、インスタンスを変数に代入します。

$変数 = new クラス名();

インスタンスを代入した変数に矢印を引っ張って関数名を書きます。

$インスタンスを代入した変数->select();

上記のようにすればクラスの関数が使えます。

投稿記事をselect文で条件を指定してデータを取得する

$dbm = new DBManager();
$id = 1;
$sql="SELECT * FROM wp_posts WHERE id = ".$id;
$result = $dbm->select($sql);

上記のやり方では問題がありますがここではこれで終わりにします。

SQLインジェクション対応コード

問題のないコードを書いてから終わります。

$dbm = new DBManager();
$id = 1;
$sql="SELECT * FROM wp_posts WHERE id = ?";
$result = $dbm->select($sql,array($id));

上記の説明はまた今度!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする