Node.js,MySQL(使用
node-mysql library
连接)
我可以有one argument 'aaa'
或two arguments 'aaa' and 'bbb'
。
UPDATE user SET email = 'aaa' WHERE uid = 'xxx';
UPDATE user SET email = 'aaa', password = 'bbb' WHERE uid = 'xxx';
如何使用一个查询来克服上述情况?像下面...
var sql = "UPDATE user SET email = ?, password = ? WHERE uid = ?;"
dbclient.query(sql, [email, password, uid], function (err, results) {
...
});
如果有两个参数defined
,则变量sql
为:
sql = "UPDATE user SET email = '[email protected]', password = 'abcd' WHERE uid = 1;";
如果有人参数为undefined
,则变量sql
为:
sql = "UPDATE user SET email = '[email protected]', password = password WHERE uid = 1;";
请阅读文档,尤其是转义查询值的部分。node-mysql
支持对象序列化的一些巧妙使用。
以下示例应为您想要的示例(它使用格式,但query()
内部使用格式):
var mysql = require( 'mysql' );
var credfull = {
email: "[email protected]",
password: "secret"
},
crednopwd = {
email: "[email protected]"
},
whereclause = {
uid: "blabla"
};
console.log( mysql.format( 'UPDATE user SET ? WHERE ?', [credfull, whereclause]) );
// UPDATE user SET `email` = '[email protected]', `password` = 'secret' WHERE `uid` = 'blabla'
console.log( mysql.format( 'UPDATE user SET ? WHERE ?', [crednopwd, whereclause]) );
// UPDATE user SET `email` = '[email protected]' WHERE `uid` = 'blabla'
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句