在PHP中,如果没有使用orm框架,用mdb2包直接操作数据库,就要面临一些转义的问题。
到处需要调用mysql_escape_string。
下面代码,可以把一个obj里的所有字符串做转义,这样sql书写、可读性就好多了。
function mysql_escape_obj(&$obj)
{
if ( is_string($obj))
{
$obj = mysql_escape_string($obj);
}
else if (is_array($obj))
{
foreach ($obj as $key=>&$value)
{
mysql_escape_obj($value);
}
}
else if (is_object($obj))
{
$reflector = new ReflectionClass(get_class($obj));
$properties = $reflector->getProperties();
foreach($properties as $property)
{
mysql_escape_obj($obj->{$property->getName()});