我不明白为什么mysql_real_escape_string
需要逃避新的行和回车字符:
\n
和\r
使用\n
和\r
的sql中可能存在哪些安全漏洞?
UPDATE tbl SET field = 'text text text \n text text text \r text text' WHERE id = 1;
答案 0 :(得分:2)
MySQL不需要转义换行符。 manual page for the mysql_real_escape_string
function of MySQL’s C API说:
编码的字符为“
\
”,“'
”,“"
”,NUL
(ASCII 0),“\n
”,“{ {1}}“和Control + Z.严格地说,MySQL只需要反斜杠,并且用于引用查询中字符串的引号字符将被转义。\r
引用其他字符,以便在日志文件中更容易阅读。