LoginSignup
1
0

【PDO】PHPでDB接続

Posted at

PHPでDB接続

PDO (PHP Data Object) を使用しPHPによるDB接続する方法を解説します。

DBはPostgreSQLを使用します。

大まかな流れとしては、

1. DB接続
2. SQLクエリの実行
3. データ (クエリ) の取得

です。


DB接続の前に、php.iniファイルを編集してPDOを使用できるようにしないといけません。

C:\xampp\php\php.ini の 910~950行目あたりにある

;extension=pdo_mysql
;extension=pdo_pgsql
;extension=pdo_sqlite

使用したいDBに対応している、行頭の 「;」 を削除します。その後、Apacheを再起動します。

1. DB接続

では、php.iniファイルの設定ができたらPHPからDB接続していきます。

まず、PDOクラスに接続したいDBの情報(DB名、ホスト名、ポート番号、ユーザー名、パスワード)を引数で渡します。その返り値を取得するインスタンス$dbhを生成します。

PostgreSQLの場合

DB接続
$dsn = 'pgsql:dbname=データベース名 host=ホスト名 port=ポート番号';
$user = 'ユーザー名';
$password = 'パスワード';

$dbh = new PDO($dsn, $user, $password);

※ $dsn は (Data Source Name) でDBに接続する情報が代入

※ $dbh は (Database Handle) の略でPDOオブジェクトを管理

2.SQLクエリの実行

変数sqlには実行したいクエリを作成。引数をクエリに代入できます。
変数stmtには実行するSQLを、prepareメソッドにて実行するためのPDOステートメントを定義します。

クエリ実行
$sql = 取得したいSQL文
$stmt = $dbh->prepare($sql);

3.データ (クエリ) の取得

変数resultには、$stmtに対しての結果を取得します。
結果が1行ならfetchメソッド、結果が複数ならfetchAllメソッドを利用します。
(PDO::FETCH_ASSOC)は、結果セットから次の行を取得するPDOステートメントです。

データ取得
$result = $stmt->fetch(PDO::FETCH_ASSOC);

SELECT文の場合は、複数行がほとんどで、fetchAllを利用して結果をforeachで配列を取得するのが一般的です。

参考


著者: E.R (株式会社ウィズツーワン)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0