PHPでデータベースに接続するの方法(書き方)

久々にフレームワーク使用せずに、ちょっくら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 (2020/10/30 00:34:04時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA