mixed quoteSmart (
mixed $in
)
入力内容を整形し、クエリ内でリテラルとして安全に使用できるようにします。 リテラルとは文字列や数値のことで、SQL 文の WHERE、SET および VALUES 句で使用できるものです。
返される整形結果は、入力の PHP データ型 および使用しているデータベースの型に依存します。
$in
クォートされる入力。
mixed - 整形された結果が返されます。
整形結果は、入力の PHP 型に依存します。
入力の型
-> 返り値
NULL -> 文字列 NULL
。
integer あるいは float -> クォートされない数値。
boolean -> 使用しているドライバに依存します。
ほとんどのドライバでは、true
の場合に
1
、false
の場合に
0
を返します。
中には、true
の場合に文字列の TRUE
、
false
の場合に文字列の FALSE
を返すものもあります。また、
true
の場合に文字列の T
、
false
の場合に文字列の F
を返すものもあります。以下に、各 DBMS についての返り値およびカラム型を
示します。
dbase
-> T/F
(Logical
)
fbase
-> TRUE/FALSE
(BOOLEAN
)
ibase
-> 1/0
(SMALLINT
) [1]
ifx
-> 1/0
(SMALLINT
) [1]
msql
-> 1/0
(INTEGER
)
mssql
-> 1/0
(TINYINT
)
mysql
-> 1/0
(TINYINT(1)
)
mysqli
-> 1/0
(TINYINT(1)
)
oci8
-> 1/0
(NUMBER(1)
)
odbc
-> 1/0
(SMALLINT
) [1]
pgsql
-> TRUE/FALSE
(BOOLEAN
)
sqlite
-> 1/0
(INTEGER
)
sybase
-> 1/0
(TINYINT
)
[1] BOOLEAN
に対応していないバージョンが存在するため、
より無難なほうに対応させています。
その他 (文字列や、数値形式の文字列を含む) -> DBMS 固有の方法でエスケープされた文字列 ( escapeSimple() を使用します) の前後を単一引用符で囲んだもの。
This function can not be called statically.
リリース 1.6.0 以降で使用可能です。
quoteSmart() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$name = "all's well";
$active = true;
$sql = 'SELECT * FROM clients WHERE name = '
. $db->quoteSmart($name)
. ' AND active = '
. $db->quoteSmart($active);
$res =& $db->query($sql);
?>