開発(PHP):データベースで特定のテーブルの情報を抽出
データベースで特定のテーブルの情報を抽出するには、$modx->db->select
メソッドを使用します。
構文
戻り値 = $modx->db->select(
抽出フィールド,
対象テーブル,
条件,
並び順序,
件数制限
);
引数名 | 型 | 初期値 | 説明 | |
---|---|---|---|---|
第一引数 | 抽出フィールド | string | '*' | 抽出するデータベースのフィールド(カラム名)。 カンマ区切りで複数取得することが可能。 |
第二引数 必須 |
対象テーブル | string | 対象のテーブル名。 インストール時に設定したプレフィックスを指定する必要があるが、 [+prefix+] プレースホルダーで自動的に付与してくれる。 |
|
第三引数 | 条件 | string | 絞り込む条件。 SQL文のWHEREと同じ指定方法。 例: "`id`>'3'" ANDやORで複数の条件を指定することが可能。 |
|
第四引数 | 並び順序 | string | 抽出した情報の並び順序。 SQL文のORDER BYと同じ指定方法。 例: "id DESC" カンマ区切りで複数指定することが可能。 |
|
第五引数 | 件数制限 | string | 抽出した情報の件数を制限する。 SQL文のLIMITと同じ指定方法。 例: "5" カンマで区切ると範囲を指定することが可能。 例: "5,10" (5行目から10行目まで取得) |
戻り値
次のプロパティを持つobjectを返します。
プロパティ名 | 型 | 説明 |
---|---|---|
current_field | integer | 現在のフィールドのインデックス番号。 |
field_count | integer | 取得したフィールドの数。 |
lengths | array または null |
現在の行のフィールド毎のバイト数。 $modx->db->getRowなどで行が移動した時に更新。 最初に抽出した時点ではnull。 |
num_rows | integer | 取得した件数。 |
type | integer | ※ 不明 |
サンプルコード
$results = $modx->db->select('id,pagetitle', '[+prefix+]site_content');
if ($results->num_rows > 0) {
...
}