データベースクイックスタート: サンプルコード

このページではデータベースクラスがどのように使われるかを見せてくれるサンプルコードを示します。完全な詳細についてはそれぞれの機能について書かれた個々のページをご覧ください。

データベースクラスの初期化

次のコードは 設定 に基づいたデータベースクラスのロードと初期化をします:

$db = \Config\Database::connect();

一度クラスがロードされれば、以下に説明しますように使うための準備ができます。

Note: もしすべてのページでデータベースアクセスが必要であれば、自動的に接続することができます。詳しくは 接続 ページをご覧ください。

複数行を返す標準的クエリ(オブジェクトバージョン)

$query = $db->query('SELECT name, title, email FROM my_table');
$results = $query->getResult();

foreach ($results as $row)
{
        echo $row->title;
        echo $row->name;
        echo $row->email;
}

echo 'Total Results: ' . count($results);

上の getResult() メソッドは object の配列を返します。例: $row->title

複数行を返す標準的クエリ(配列バージョン)

$query   = $db->query('SELECT name, title, email FROM my_table');
$results = $query->getResultArray();

foreach ($results as $row)
{
        echo $row['title'];
        echo $row['name'];
        echo $row['email'];
}

上の getResultArray() メソッドは標準的なキーを持つ配列の配列を返します。例: $row['title']

単一行を返す標準的クエリ

$query = $db->query('SELECT name FROM my_table LIMIT 1');
$row   = $query->getRow();
echo $row->name;

上の getRow() メソッドは object を返します。例: $row->name

単一行を返す標準的クエリ(配列バージョン)

$query = $db->query('SELECT name FROM my_table LIMIT 1');
$row   = $query->getRowArray();
echo $row['name'];

上の getRowArray() メソッドは 配列 を返します。例: $row['name']

標準的インサート

$sql = "INSERT INTO mytable (title, name) VALUES (".$db->escape($title).", ".$db->escape($name).")";
$db->query($sql);
echo $db->affectedRows();

クエリビルダによるクエリ

クエリビルダパターン はデータを取得する簡便な方法を提供します:

$query = $db->table('table_name')->get();

foreach ($query->getResult() as $row)
{
        echo $row->title;
}

上の get() メソッドは与えられたテーブルの全行を取得します。The Query Builder class contains a full complement of functions for working with data.

クエリビルダによるインサート

$data = [
        'title' => $title,
        'name'  => $name,
        'date'  => $date
];

$db->table('mytable')->insert($data);  // Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')