mysql 单引号的问题
发布于 9 年前 作者 peterzhu0825 5331 次浏览 最后一次编辑是 8 年前 来自 问答

在插入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

回到顶部