选择语言 :

 Driver_Database_Driver_MySQL::quote

Quote a value for an SQL query.

$db->quote(null); // 'NULL' $db->quote(10); // 10 $db->quote('fred'); // 'fred'

Objects passed to this function will be converted to strings. [Database_Expression] objects will use the value of the expression. [Database_Query] objects will be compiled and converted to a sub-query. All other objects will be converted using the __toString method.

string Driver_Database_Driver_MySQL::quote( mixed $value )
uses
Database::escape

参数列表

参数 类型 描述 默认值
$value mixed Any value to quote
返回值
  • string
File: ./drivers/database/mysql/mysql.class.php
public function quote($value)
{
    if ($value === null)
    {
        return 'NULL';
    }
    elseif ($value === true)
    {
        return "'1'";
    }
    elseif ($value === false)
    {
        return "'0'";
    }
    elseif (is_object($value))
    {
        if ($value instanceof Database)
        {
            // Create a sub-query
            return '(' . $value->compile() . ')';
        }
        elseif ($value instanceof Database_Expression)
        {
            // Use a raw expression
            return $value->value();
        }
        else
        {
            // Convert the object to a string
            return $this->quote((string)$value);
        }
    }
    elseif (is_array($value))
    {
        return '(' . implode(', ', array_map(array($this, __FUNCTION__), $value)) . ')';
    }
    elseif (is_int($value))
    {
        return "'".(int)$value."'";
    }
    elseif (is_float($value))
    {
        // Convert to non-locale aware float to prevent possible commas
        return sprintf('%F', $value);
    }

    return $this->escape($value);
}