比如这样的语句:
connection.query('INSERT INTO users SET ?',{username:'RITSU',firstname:'yan'},function(err,result){
//})
其中SET 与? 关键字什么意思?
还有所谓的用??来作为sql标识符使用参数又是何解?
INSERT INTO ... SET ...
是 MySQL 的语法:https://dev.mysql.com/doc/refman/5.6/en/insert.html 。之所以选择这种方式是因为它和 UPDATE ... SET ...
的语法很像,而且和 node-mysql 的参数展开功能配合起来更加方便:https://github.com/felixge/node-mysql#escaping-query-values,node-mysql 会将对象展开成 k1 = v1, k2 = v2
这样的形式。
node-mysql的query有点扯。。建议你自己用占位符拼sql后,replace,不要去用它的??和?
一般来说,??代表table name和column name,?代表动态的值