PDOオブジェクト
データベースに接続するためのオブジェクトであり、query関数を使うことでクエリを実行し、PDO Statementオブジェクトを取得できる。
プレースホルダーを使用したクエリを実行するには、PDOオブジェクトを使用してPDOStatementオブジェクトを取得し、その後、それを使用してクエリを実行する。
以下例
// データベース情報
$dbHost = 'localhost';
$dbName = 'database_name';
$dbUser = 'username';
$dbPass = 'password';
// PDOインスタンスの作成(データベースへの接続)
$pdo = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass);
// エラーモードと例外処理の設定
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 実行するクエリ
$query = "SELECT * FROM users";
// クエリを実行し、PDOStatementオブジェクトを取得
$statement = $pdo->query($query);
PDO Statementオブジェクト
PHPからSQLを実行する際、プレースホルダーを使って、実行することがほとんどだと思う。
prepareやexcuteはPDOオブジェクトから取得したステートメントに対して使用するものであり、PDO Statementクラスのものである。
例
$sql = "SELECT * FROM users WHERE id = :id";
$stmt = $db->prepare($sql); // SQLを準備
$params = array(':id' => 1); // パラメータ
$stmt->execute($params); // クエリを実行
queryを実行することで、PDO Statementオブジェクトが取得できる。
例
// 実行するクエリ
$query = "SELECT * FROM users";
// クエリを実行し、PDOStatementオブジェクトを取得
$statement = $pdo->query($query);
// 結果の取得
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
実際は、try catchなどで例外処理するが、簡単に書くとこうなる。
この際使用されているのが、PDO Statementオブジェクトである。
PDO Statementオブジェクトでは、
クエリを実行する場合には、準備されたステートメントを実行するために
executeメソッドを使用する。
PDO Statementオブジェクトで使用できる主要なメソッドは。
- excute(): 準備されたステートメントを実行する。
- fetch(): 結果セットから次の行を取得する。
- fetchAll(): 結果セットから全ての行を取得する。
- rowCount(): 直近のSELECT文で取得された行の数を返す。
- その他、エラー情報を取得するためのメソッドなどがある。
以上がPDO Statementオブジェクトの概要である。