PDOでテーブルを操作する PHPでのデータベース処理

2018/08/08PHP
PDOでテーブルを操作する PHPでのデータベース処理

PHPでデータベースを扱う場合フレームワークを以外だとPDO(PHP Data Object)を多く使います。

PDOの利点

PHPで用意されているネイティブ関数をPHPスクリプトでラッピングしてたPEAR::DBなどと違いPDOは「PHP Extension(PHP拡張)」なので、動作速度がそれほど問題にならないところです。大量のデータを扱う場合などはやはりこの「処理速度」というのは重要になってきます。

PDOでのテータベース接続と切断

PDOでデータベースに接続する場合と切断する場合です。try〜catch文で例外を補足します。HOSTやDBNAMEなどは定数として設定おいた方が便利です。

接続

try {
    // MySQLサーバへ接続
    $pdo = new PDO("mysql:host=HOST; dbname=DBNAME","USER", "PASSWORD");
} catch(PDOException $e){
    var_dump($e->getMessage());
}

切断

$pdo = null;

PDOでテーブルを扱う

DDL(データ定義言語)についてです。「CREATE」「DROP」「ALTER」のつです。

CREATE(テーブルの作成)

DROP(テーブルの削除)

ALTER(フィールドの追加・削除)

PDOでデータを扱う

DML(データ操作言語)についてです。「SELECT」「INSERT」「UPDATE」。「DELETE」の4つです。

SELECT(抽出)

データベースからデータを呼び出す場合の方法です。「query」を使う場合は「execute()」は使わない点に注意します。PDOクラスのメソッドであるfetchを使ってデータを取り出す例です。PDO::FETCH_ASSOCによって最後まで同じように列名を記述しながら配列でとりだします。


$stmt = $pdo->query("SELECT * FROM TABLE_NAME ORDER BY id ASC");
$i = 0;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
 $data[$i]['id'] = $row['id'];
 $contracts_list[$i]['contract_number'] = $row['contract_number'];
 $i++;
}

COUNT

ある条件のデータ件数を数えたい時に使います。


$sql = 'select count(*) from TABEL-NAME where delete_flag = :delete_flag';
$stmt = $pdo->prepare($sql);
$stmt -> execute(array('delete_flag' => 0));

$count = $stmt -> fetchColumn();
echo $count;

INSERT(追加)

UPDATE(更新)

DELETE(削除)

PDOでデータを制御する

DCL(データ制御言語)についてです。「COMMIT」「ROLLBACK」「REVOKE」の3つを紹介します。

COMMIT

ROLLBACK

REVOKE