我正在使用 QSqlQuery 在我的 Qt5/C++ 程序中创建一个简单的 SQLite 更新。当我执行下面的查询时,出现错误“参数计数不匹配”。但为什么?
QSqlQuery updateQuery;
updateQuery.prepare("UPDATE mytable SET m=:m WHERE r=:r AND u=:u LIMIT 1");
updateQuery.bindValue(":m", m);
updateQuery.bindValue(":r", r);
updateQuery.bindValue(":u", u);
sqlErrors = !updateQuery.exec();
变量m、r、u是QString的。我有 3 个参数,并绑定所有三个。不匹配在哪里?像 this 这样的帖子只涉及 INSERT 命令,但其他所有适用的似乎都是正确的。
检查 lastQuery() 确认绑定替换没有发生。我还可以看到 prepare 语句失败(返回 false)——但对我来说它看起来像是有效的 SQL。