LoginSignup
0
3

More than 3 years have passed since last update.

PDOを接続とプリペアドステートメント説明

Last updated at Posted at 2020-09-23

PDOの接続方法

僕はmysqliに比べて、分かりづらかったので、PDOの接続の仕方を書いてみました。

<?php
try {
    $pdo = new PDO("mysql:dbname=データベース名; host=localhost; charset=utf8mb4", "ユーザー名", "パスワード");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "接続完了";
} catch (PDOException $e) {
    exit();
    echo "接続失敗";
}
?>

プリペアドステートメントについて

プリペアドステートメントって、初めは分かりづらいですよね。
プリペアドステートメントとは、SQL文を最初に用意しておいて、その後はクエリ内のパラメータの値だけを変更してクエリを実行できる機能のことです。
この機能を利用することでクエリの解析やコンパイル等にかかる時間は最初の一回だけで良くなり、より高速に実行することができます。
また、SQLインジェクション対策に必要なパラメータのエスケープ処理も自動で行ってくれるため、安全かつ効率の良い開発が出来ます。

プリペアドステートメントを利用してクエリを実行する流れ

PDOオブジェクトの作成

prepareメソッドでSQL文をセット

bindValue or bindParamでパラメータに値をセット

executeメソッドでクエリを実行

fetch or fetchAllメソッドで結果を配列で取得

INSERTだとこんな感じで使います。

$stmt = $pdo -> prepare("INSERT INTO blog (title, text) VALUES (:title, :text)");
    $stmt->bindParam(":title", $_POST['title'], PDO::PARAM_STR);
    $stmt->bindParam(":text", $_POST['text'], PDO::PARAM_STR);
    $stmt->execute();

参考にしたサイト
PDO prepare プリペアドステートメントの使い方

0
3
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
0
3