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_MySQLI::quote( mixed $value )
参数列表
参数 类型 描述 默认值 $value
mixed
Any value to quote
string
645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692public
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
);
}