DB_common::quoteSmart()

DB_common::quoteSmart() – リテラルとして安全に使用できるように入力内容を整形する

Synopsis

mixed quoteSmart ( mixed $in )

Description

入力内容を整形し、クエリ内でリテラルとして安全に使用できるようにします。 リテラルとは文字列や数値のことで、SQL 文の WHERESET および VALUES 句で使用できるものです。

返される整形結果は、入力の PHP データ型 および使用しているデータベースの型に依存します。

Parameter

mixed $in

クォートされる入力。

Return value

mixed - 整形された結果が返されます。

整形結果は、入力の PHP 型に依存します。

  • 入力の型 -> 返り値

  • NULL -> 文字列 NULL

  • integer あるいは float -> クォートされない数値。

  • boolean -> 使用しているドライバに依存します。

    ほとんどのドライバでは、true の場合に 1false の場合に 0 を返します。 中には、true の場合に文字列の TRUEfalse の場合に文字列の FALSE を返すものもあります。また、 true の場合に文字列の Tfalse の場合に文字列の 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() を使用します) の前後を単一引用符で囲んだもの。

Note

This function can not be called statically.

リリース 1.6.0 以降で使用可能です。

Example

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);
?>
識別子として安全に使用できるように文字列を整形する (Previous) 現在のトランザクションをロールバックする (Next)
Last updated: Wed, 22 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.