mysql 单引号的问题
在插入mysql的时候,数据中出现单引号,插入不进数据,请问node.js有什么好的处理方式可以处理这个问题,求指教
4 回复
转义啊。
// refer to https://github.com/XadillaX/Toshihiko/blob/develop/lib/escaper.js#L17
return str./**escapeRegExp().*/chars().reduce(function(str, ch) {
switch(ch) {
case "\n" : str += "\\n"; break;
case "'" : str += "\\'"; break;
case "\"" : str += "\\\""; break;
case "\t" : str += "\\t"; break;
case "\0" : str += "\\0"; break;
case "\r" : str += "\\r"; break;
case "\b" : str += "\\b"; break;
case "\x1a" : str += "\\Z"; break;
case "\\" : str += "\\\\"; break;
default: str += ch; break;
}
return str;
}, "");
类似于这样子的。
https://github.com/XadillaX/Toshihiko/blob/develop/lib/escaper.js#L17
这不是node的问题。
@jysperm 预防SQL注入,可使用node-mysql的?占位符,内部替换时候使用了connection.escape