我试图更新MYSQL DB中的一些信息,但我不知道如何在node.js中使用它.这是我正在使用的mysql驱动程序https://github.com/felixge/node-mysql
到目前为止我有什么
connection.query('SELECT * FROM users WHERE UserID = ?', [userId], function(err, results) {
if (results[0]) {
if (results[0].Name!=name) {
console.log(results[0].Name);
connection.query('UPDATE users SET ? WHERE UserID = ?', [userId], {Name: name});
}
console.log(results[0].UserID);
}
});
Run Code Online (Sandbox Code Playgroud)
一切正常,除了......
connection.query('UPDATE users SET ? WHERE UserID = ?', [userId], {Name: name});
Run Code Online (Sandbox Code Playgroud)
在PHP中我会有这个......
mysql_query("UPDATE users SET Name='".$_GET["name"]."' WHERE UserID='".$row['UserID']."'");
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么,但我很肯定这个问题就在这里
connection.query('UPDATE users SET ? WHERE UserID = ?', [userId], {Name: name});
Run Code Online (Sandbox Code Playgroud)
rua*_*akh 48
[ 注(加2016年4月29日):这个答案已被接受,但事实证明,还有就是用合理的方式SET ?
.有关详细信息,请参阅Bala Clark在同一页面上的答案.-ruakh ]
从的代码Connection.prototype.query()
和Connection.createQuery()
,很明显,你只能通过在一个单一的值对象.我没有看到特殊SET ?
行为的代码定义在哪里- 它显然不在SqlString.formatQuery()
- 但如果它使用SqlString.objectToValues()
,那么我想没有办法将它与另一个一起使用?
.
我认为最好的方法是省略整洁的SET ?
功能,并写下以下任何一个:
connection.query('UPDATE users SET Name = ? WHERE UserID = ?', [name, userId])
Run Code Online (Sandbox Code Playgroud)
connection.query('UPDATE users SET Name = :Name WHERE UserID = :UserID',
{UserID: userId, Name: name})
Run Code Online (Sandbox Code Playgroud)
但如果你真的想用SET ?
,我想你可以这样写:
connection.query('UPDATE users SET ? WHERE UserID = :UserID',
{UserID: userId, Name: name})
Run Code Online (Sandbox Code Playgroud)
这将同时更新UserID
和Name
; 除非你有一个触发器,这应该没问题,因为它正在更新UserID
它已经拥有的值.但它有点令人不安,我不推荐它.
Bal*_*ark 37
ruakh的答案并不完全正确,你可以将这个ruakh
功能与另一个一起使用SET ?
.
语法是:
connection.query('UPDATE users SET ? WHERE UserID = ?', [{ Name: name }, userId])
Run Code Online (Sandbox Code Playgroud)
Mar*_*cel 19
您可以使用对象数组:
connection.query('UPDATE user SET ? WHERE ?', [{ Name: name }, { UserId: userId }])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
56962 次 |
最近记录: |