在插入mysql的时候,数据中出现单引号,插入不进数据,请问node.js有什么好的处理方式可以处理这个问题,求指教
回复 (4)
X
转义啊。
// 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
L
这不是node的问题。
D
引用 jyspermhttps://github.com/felixge/node mysql/blob/master/lib/protocol/SqlString.js L16
@jysperm 预防SQL注入,可使用node-mysql的?占位符,内部替换时候使用了connection.escape
参与回复
登录后即可参与回复。登录