mysql - 如何使用占位符更新 1 行中的 1 列
问题描述
我需要使用占位符更新 mysql 数据库表中 1 行中的 1 项。我尝试使用的语法是:
“更新表 SET column_name = newValue WHERE id = selectedID”
我知道表名,我想使用 id 选择要更新的行。我想使用占位符传入 column_name、newValue 和 selectedID,所以我认为语句应该如下所示:
"UPDATE table SET ?? = ? WHERE id = ?", [{column_name: newValue}, {id: selectedID}]
这是我的代码:
employeeToUpdate(columnToUpdate, newValue, employeeToUpdateId) {
console.log("Updating employee information \n");
// console.log('col: ' + columnToUpdate + " newV: " + newValue + " id: " + employeeToUpdateId);
this.connection.query(
// insert a new role with the given information
// "UPDATE employee SET last_name = 'Johnson' WHERE id = 4"
"UPDATE employee SET ?? = ? WHERE id = ?",
[
{
columnToUpdate: newValue
},
{
id: employeeToUpdateId
}
]
)
}
注释掉的 console.log 确认传入的值是正确的。注释掉的“UPDATE...”语句适用于提供的值。
但这会导致解析错误。有一个更好的方法吗?我没有找到好的文档来帮助我。
解决方案
I think the second parameter should be an array.I could not test it but something like this should work.
this.connection.query("UPDATE employee SET ?? = ?? WHERE id = ?",
[columnToUpdate,newValue,employeeToUpdateId],
function (error, results) {
if (error){
return console.error(error.message);
}
console.log('Rows affected:', results.affectedRows);
});
推荐阅读
- php - 如何在特定产品的 woocommerce_order_status_completed 挂钩上执行功能?
- javascript - 需要有关将变量从 chrome 扩展发送到 python 的帮助
- excel - 如何在 VBA 中遍历一组有限的数字?
- python - UserCheckout 匹配查询不存在
- python - Google Cloud DLP 常规自定义字典错误“字典没有“cloudStoragePath”字段”
- wordpress - 如何验证联系表 7 中所有国家/地区的电话号码?
- c++ - 由 std::bind 分离的 std::function 的模板类型是未定义的行为吗?
- html - 为什么 CSS 属性值在标签本身中使用字符串而不在规则中表示?
- ruby-on-rails - 在 Rails 6 中同时或循环发送多封电子邮件的最佳实践?
- c# - 实体框架核心 ForeignKeyAttribute 两边