PDO::quote
(no version information, might be only in CVS)
PDO::quote --
クエリ用の文字列をクオートする
説明
string
PDO::quote ( string string [, int parameter_type] )
警告 |
この関数は、
実験的なステータスにあります。これは、この関数の
動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告
なく変更される可能性があることを意味します。注意を喚起するとともに自分
のリスクでこの関数を使用してください。 |
PDO::quote() は入力文字列のまわりに引用符を付け、
入力文字列にあるシングルクオートをエスケープします。
入力文字列をクオートすることは、一般的に SQL
インジェクション攻撃を防ぐという意味を持ちます。
しかしながら、より安全なアプローチは
入力値に対して名前付けされたパラメータやプレースホルダを使用する
プリペアドステートメントを使用することです。
全ての PDO ドライバがこのメソッドを実装しているわけではありません。
パラメータ
- string
クオートされる文字列を指定します。
- parameter_type
クオートするスタイルを変更するため、
ドライバにデータ型のヒントを提供します。
デフォルト値は、PDO_PARAM_STR です。
戻り値
理論上安全なクオートされた SQL 文の文字列を返します。
例
例 1. 通常の文字列をクオートする
<?php $conn = new PDO('sqlite:/home/lynn/music.sql3');
/* 単純な文字列 */ $string = 'Nice'; print "Unquoted string: $string\n"; print "Quoted string: " . $conn->quote($string) . "\n"; ?>
|
上の例の出力は以下となります: Unquoted string: Nice
Quoted string: 'Nice' |
|
例 2. 危険な文字列をクオートする
<?php $conn = new PDO('sqlite:/home/lynn/music.sql3');
/* 危険な文字列 */ $string = 'Naughty \' string'; print "Unquoted string: $string\n"; print "Quoted string:" . $conn->quote($string) . "\n"; ?>
|
上の例の出力は以下となります: Unquoted string: Naughty ' string
Quoted string: 'Naughty '' string' |
|
例 3. 複雑な文字列をクオートする
<?php $conn = new PDO('sqlite:/home/lynn/music.sql3');
/* 複雑な文字列 */ $string = "Co'mpl''ex \"st'\"ring"; print "Unquoted string: $string\n"; print "Quoted string: " . $conn->quote($string) . "\n"; ?>
|
上の例の出力は以下となります: Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring' |
|
以下も参照ください
PDO::prepare() |
PDOStatement::execute() |