PDO::quote
(no version information, might be only in CVS)
PDO::quote --
クエリ用の文字列をクオートする
説明
string
PDO::quote ( string string [, int parameter_type] )
PDO::quote() は入力文字列のまわりに引用符を付け
(必要であれば) 、
入力文字列にあるシングルクオートをエスケープします。その場合、
構成しているドライバに適したクオート形式が使用されます。
この関数を SQL の構築に使用する場合、
SQL ステートメントにユーザーの入力値を埋め込むための
PDO::quote() を使用する代わりに、
バインドパラメータを用いて SQL を準備するための
PDO::prepare()
を使用することが強く推奨されます。
バインドパラメータを用いるプリペアドステートメントは、
補間されたクエリした場合に比べ、
移植性や利便性に優れ、SQL インジェクションに対する免疫力を持つだけでなく
しばしばより高速で、サーバやクライアント側でコンパイル済みの形式でクエリを
キャッシュする事が可能です。
全ての PDO ドライバがこのメソッドを実装しているわけではありません。
代わりにプリペアドステートメントを使用することを検討してください。
パラメータ
- string
クオートされる文字列を指定します。
- parameter_type
クオートするスタイルを変更するため、
ドライバにデータ型のヒントを提供します。
デフォルト値は、PDO::PARAM_STR です。
返り値
理論上安全なクオートされた SQL ステートメントの文字列を返します。
ドライバがこの方法での引用符付けをサポートしていない場合は
FALSE を返します。
例
例 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() |