データベースclass DB
DBクラスはデータベースへ接続ヘルパーです。
mysql_*関数
, PDO
をサポートしており、統一されたインターフェースでデータベースを扱うことができます。
設定
/cl/config/db.php
に接続設定を記述します。
default
コネクションがDBクラスで利用する通常のコネクションになります。
<?php
return array(
// defaultコネクションの設定
'default' => array(
'user' => 'dbuser',
'password' => 'dbpass',
'host' => 'localhost',
// ここ以下は設定しなくてもよいですが
// 設定されていた場合、自動的に"use"と"set name"クエリが実行されます。
'database' => 'dbname',
'charset' => 'utf8'
)
)
利用例
以下はシンプルなログイン処理の実装例です。
DB::queryメソッド
でプレースホルダが利用できるのを確認できます。
<?php
if (Req::method() === "POST") {
$user_id = Req::post('user_id');
$password = Req::post('password');
// パスワードパッシュを取得する
$resultset = DB::query('SELECT `password` FROM `users` WHERE `user_id` = :user_id', array(
':user_id' => $user_id
));
$password_hash = Arr::get($resultset->fetch(), 'password');
if (password_verify($password, $password_hash)) {
header('Redirect: hello.php');
exit;
}
else {
echo 'ユーザー名かパスワードが間違っています。';
}
}
?>
<form method="post">
<label>ユーザーID <input type="text" name="user_id" class="form-input" /></label>
<label>パスワード <input type="password" name="password" class="form-input" /></label>
<button class="btn btn-primary">ログイン</button>
</form>