节点写入mysql db时出现奇怪的转义行为"/>
[将字符串从节点写入mysql db时出现奇怪的转义行为
我在节点上,想在我的mysql数据库中写这个:
var x = JSON.stringify(['aa"a']);
console.log(x);
mysqlConnection.query("UPDATE `table` SET field = '" + x + "' WHERE id = 1");
console.log()产生:[“ aa \” a“]
[稍后我从数据库读取字符串时,得到:[“ aa” a“]
缺少反斜杠,使字符串无用,因为调用JSON.parse()会产生错误。
回答如下:您正在将SQL作为字符串混搭在一起。 \
是转义字符(在SQL和JSON中都是如此),因此当传递给SQL引擎时,它会转义"
。
使用占位符(您正在使用的任何MySQL API库都应有使用它们的方法),而不是将变量手动推入SQL字符串中。
更多推荐
[将字符串从节点写入mysql db时出现奇怪的转义行为
发布评论