我正在寻找SQL Server的mysql_real_escape_string()的替代方案。addslashes()是我最好的选择,还是有其他可以使用的替代功能?
mysql_error()的替代方案也会很有用。
发布于 2017-11-05 13:00:28
最好也对SQL保留字进行转义。例如:
function ms_escape_string($data) {
    if (!isset($data) or empty($data))
        return '';
    if (is_numeric($data))
        return $data;
    $non_displayables = array(
        '/%0[0-8bcef]/',        // URL encoded 00-08, 11, 12, 14, 15
        '/%1[0-9a-f]/',         // url encoded 16-31
        '/[\x00-\x08]/',        // 00-08
        '/\x0b/',               // 11
        '/\x0c/',               // 12
        '/[\x0e-\x1f]/',        // 14-31
        '/\27/'
    );
    foreach ($non_displayables as $regex)
        $data = preg_replace( $regex, '', $data);
    $reemplazar = array('"', "'", '=');
    $data = str_replace($reemplazar, "*", $data);
    return $data;
}https://stackoverflow.com/questions/574805
复制相似问题