query.prepare("update user set id=?,name=?,pwd=?,fingerID=?,faceID=?,QX_GuLiYuan=?,QX_JunXieYuan=?,QX_GanBu=?,QX_JinJiQuQiang=?,fgStatus=? where ?=?"); query.addBindValue(userUpd->getNo()); query.addBindValue(userUpd->getName()); query.addBindValue(userUpd->getPwd()); query.addBindValue("指纹"); query.addBindValue("人脸"); query.addBindValue(userUpd->getBPower_GuanLiYuan()); query.addBindValue(userUpd->getBPower_JunXieYuan()); query.addBindValue(userUpd->getBPower_GanBu()); query.addBindValue(userUpd->getBPower_JinJi_QuQiang()); query.addBindValue("0"); query.addBindValue(fieldName); query.addBindValue(fieldValue);哪里有错误
时间: 2024-01-07 12:03:00 浏览: 113
https://pan.baidu.com/s/1zSke-uPa3DmpCK7bmTowwQ?pwd=vgs5
这段代码中的错误在于,你不能将表名和字段名作为绑定变量传递给查询。正确的写法应该是将表名和字段名直接拼接到 SQL 语句中。另外,指纹和人脸这两个字段也需要直接拼接到 SQL 语句中,而不是使用绑定变量。下面是修改后的代码:
```
query.prepare("update user set id=?,name=?,pwd=?,fingerID='指纹',faceID='人脸',QX_GuLiYuan=?,QX_JunXieYuan=?,QX_GanBu=?,QX_JinJiQuQiang=?,fgStatus='0' where " + fieldName + "=?");
query.addBindValue(userUpd->getNo());
query.addBindValue(userUpd->getName());
query.addBindValue(userUpd->getPwd());
query.addBindValue(userUpd->getBPower_GuanLiYuan());
query.addBindValue(userUpd->getBPower_JunXieYuan());
query.addBindValue(userUpd->getBPower_GanBu());
query.addBindValue(userUpd->getBPower_JinJi_QuQiang());
query.addBindValue(fieldValue);
```
注意,这里的代码仅解决了语法问题,还需要确保表名和字段名的正确性,以及防止 SQL 注入攻击。
阅读全文