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);
?>