Если вам нужно отображение функции 1: 1, это работает, оно делает обратные следы немного неприятными, но работает
class DB
{
public static function escape()
{
$args = func_get_args();
return call_user_func_array('mysql_real_escape_string', $args );
}
}
DB::escape( $foo );
Теперь я использовал трюк func_get_args / call здесь только по одной причине:
Эта запись должна работать с любой функцией.
Тем не менее, было бы более оптимальным просто связать его напрямую
class DB
{
public static function escape($string)
{
return mysql_real_escape_string( $string );
}
}
И нет веских причин для удаления слешей, если только у вас не включена та ужасная «особенность» в php, которая автоматически вводит косые черты.
class DB
{
public static function un_gpc($string)
{
if( get_magic_quotes_gpc() === 1 )
{
return stripslashes( $string );
}
return $string;
}
public static function escape($string, $quote=false)
{
if( !$quote )
{
return mysql_real_escape_string( $string );
}
return '"' . self::escape( $string ) . '"';
}
public static function escape_gpc( $string , $quote = false )
{
return self::escape( self::un_gpc( $string ), $quote);
}
public static function get( $string , $quote = true )
{
return self::escape_gpc( $_GET[$string] , $quote );
}
}
# Handy Dandy.
$q = 'SELECT * FROM FOO WHERE BAR = ' . DB::get( 'bar' ) ;