PDO:DSN、接続
DSN
DSN (Data Source Name) は、
データベースに接続するための情報を格納するものです。
"driver:option1=value1;option2=value2;..."
使用するデータベースモジュールによって形式が異なる場合があるので、
ここでは、PDO を対象に説明します。
様々な項目がありますが、最低限、下記を設定すればOKです。
driver: 対象データベース名 (PostgreSQL なら 'pgsql')
オプションは、
| host | サーバーの名前 (ローカルなら 'localhost') |
| port | 接続するポート (PostgreSQL なら一般的には '5432') |
| dbname | データベース名 (サンプル・プログラムなら 'doc_list') |
サンプル・プログラムなら、以下になります。
"pgsql:host=localhost;port=5432;dbname=doc_list"
接続
データベースに接続するためのオブジェクトを作成します。
PDO のコンストラクタは、
public PDO::__construct(
string $dsn,
?string $username = null,
#[\SensitiveParameter] ?string $password = null,
?array $options = null
)
です。つまり、
$this->db = new PDO($dsn, $username, $password, $options);
| $dsn | 前述の DSN |
| $username | サンプル・プログラムなら、'web_sample' |
| $password | サンプル・プログラムなら、'web_sample' |
| $options | ドライバ固有の接続オプションの連想配列(後述) |
$options は、データベース依存のオプション指定です。
サンプル・プログラムでは、以下を使用しています。
PDO::ATTR_ERRMODE: エラー発生時の挙動。
→ PDO::ERRMODE_EXCEPTION (例外を吐く)を指定。
PDO::ATTR_DEFAULT_FETCH_MODE: データ取得時のモード。
→ PDO::FETCH_ASSOC (カラム名をキー、データ値を値、にした連想配列を返す)を設定。