1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PDO(PHP Data Objects)とは?

Posted at

PDOとは

PDO(PHP Data Objects)とはデータベースにアクセスするための拡張モジュール、クラスのことです。
PDOを使うことによって、異なる種類のデータベースに対して一貫した方法でアクセスすることが可能になります。
例:MySQL,PostgreSQL,SQLite

PDOはSQLインジェクションの対策になる

PDOの特徴としてSQLインジェクションを防ぐことができます。
なぜPDOを使うことでSQLインジェクションの対策になるのかよくわからなかったので調べてみました。

PDOを使ったコード例

$pdo = db_connect();
  try{
    $sql = 'select * from users where name = :name AND password = :passowrd';
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':password', $password);
    $stmt->execute();

  }catch(PDOException $e){
    echo 'エラー:', $e->getMessage();
    die();
  }

スケープホルダーを使用しているため

PDOではSQLを実行する際にプレースホルダーを使用しています。
これによって外部からの入力を直接SQLに埋め込むことなくクエリを実行することができます。

    $sql = 'select * from users where name = :name AND password = :passowrd';
    $stmt = $pdo->prepare($sql);

プレースホルダーとは:name :passwordの部分で一時的に仮に入れておく値のことを指します。

エスケープ処理をしてくれるため

SQLインジェクションの対策といえばエスケープ処理ですが、bindParam()がやってくれてるんですね。

$stmt->bindParam(':name', $name);
$stmt->bindParam(':password', $password);

まとめ

便利!!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?