久々にフレームワーク使用せずに、ちょっくらWebアプリを開発しようとしたら、DBの接続方法の書き方忘れて困ったので、ここにメモとして残しておく。
PDOを使ってデータベースに接続する方法
PDOを使ってデータベースに接続するには、以下のように書く。
$pdo = new PDO($dsn, $user, $password, $options);
$dsn
ここには、データベースに接続するために必要な情報を書く。
MySQLに接続する場合はこんな感じ。
$dsn = 'mysql:dbname=test;host=localhost;charset=utf8';
「dbname」や「host」の値はか環境に合わせて変更してください。
$user
ここでは、データベースに接続するためのユーザー名を書く。
$user = 'root';
$password
データベースに接続するためのパスワードを書く
$password = 'root';
$options
データベース接続時のオプションを連想配列で書く。
例を挙げると次のように書ける。
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
);
オプションに関するメモ
PDO::ATTR_ERRMODE
SQL実行でエラーが起こった際にどう処理するかを指定するもの。デフォルトは「PDO::ERRMODE_SILENT」
PDO::ATTR_DEFAULT_FETCH_MODE
フェッチモードの設定。「PDO::FETCH_ASSOC」がもっともポピュラーらしい。
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
MySQL専用のオプションで、結果がtrueの時にバッファクエリを使用する。バッファクエリとは「全ての情報をデータベースサーバから取得してきておいて,PHPに1件ずつ取り出させる」ことを指す。
オプションについては、僕も詳しくわかってなくて、「まぁ、こんな感じで書いておけばいっか」程度で書いてます。
ググるといくらでも参考記事が出てくるので、気になる方はググってみてください。
これらをDB接続用の関数としてまとめると、以下のような感じ。
///DB接続関数
function dbConnect(){
//接続のためのパラメーター
$dsn = 'mysql:dbname=DB名;host=localhost;charset=utf8';
$user = 'root';
$password = 'root';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
);
// DBへ接続
$pdo = new PDO($dsn, $user, $password, $options);
return $dbh;
}
あとは、try…catchの中で $pdo = dbConnect(); とやればDBへ接続できる。
created by Rinker
¥2,728
(2024/11/23 19:27:39時点 Amazon調べ-詳細)
(2024/11/23 19:27:39時点 Amazon調べ-詳細)