c#等价于php mysql_real_escape_string函数


C# equivalent to php mysql_real_escape_string function?

c#相当于php mysql_real_escape_string函数或类似函数?

mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,该函数在以下字符前加上反斜杠:'x00, 'n, 'r, ', ', "和'x1a。

我使用这个函数:

public static string MySQLEscape(string str)
{
    return Regex.Replace(str, @"['x00'""'b'n'r't'cZ''%_]",
        delegate(Match match)
        {
            string v = match.Value;
            switch (v)
            {
                case "'x00":            // ASCII NUL (0x00) character
                    return "''0";   
                case "'b":              // BACKSPACE character
                    return "''b";
                case "'n":              // NEWLINE (linefeed) character
                    return "''n";
                case "'r":              // CARRIAGE RETURN character
                    return "''r";
                case "'t":              // TAB
                    return "''t";
                case "'u001A":          // Ctrl-Z
                    return "''Z";
                default:
                    return "''" + v;
            }
        });
} 

我不认为有什么可以做到这一点,在System.Web.HttpUtility类中有各种编码/转义方法。但是,如果只是要替换这些字符,则可以使用string.Replace()

string test = " 'x00'n";
Console.WriteLine(test.Replace("'x00","''x00").Replace("'n","''n"));