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()