1
2

More than 3 years have passed since last update.

プレースホルダ php

Posted at

■プレースホルダとは

SQLインジェクション(DBに対して第三者が不必要なSQLを実行する事)等から守る方法
開発者の想定しない命令テーブルのデータ消去等を悪意のある第三者にさせないために使う。

万が一不正な値が入力されても第三者にSQL文の命令はできなくなる。

▼SQL文の中にPHPの変数を直接書いてはダメ!!!

SQLインジェクションが容易に行えるようになってしまう!!

//■ダメな例
$sql = "SELECT * FROM user WHERE name= '$name'";

■プレースホルダを使用する。

①変動箇所を:で指定。文字列カラムでもシングルクオテーションは不要。
プレースホルダの名前はカラム名と同じにしておくと分かりやすい。

$sql = "SELECT * FROM user WHERE name= :name";

②プレースホルダに実際の値をバインドする。
実際にプレースホルダを使えるようにここで指定してる。

$sql = "SELECT * FROM user WHERE name= :name";

//bindValue('プレースホルダ名',バインドするデータ,データの型);
bindValue(':name', $name, PDO::PARAM_STR);

文字型:PARAM_STR
数値型: PARAM_INT
ラージオブジェクト(画像データなど) PARAM_LOB
NULL PARAM_NULL

1
2
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
2