相关代码:
this->user = ui->user->text();
this->pass = ui->pass->text();
QSqlQuery qry;
qry.prepare("select pass from users WHERE user =:user");
qry.bindValue(":user",this->user);
if(qry.exec()){
qDebug () << "query.exe success";
}
qDebug() << " ERROR " << qry.lastError();
if(qry.first()){
qDebug() << qry.value(0).toString();
}
qry.first()
永远不会执行,qry.lastError()
返回一个空的错误字符串,我理解这意味着没有错误。但是使用delete from users
有效。this->user
是与数据库表中的内容匹配的字符串users
。但查询永远不会执行。
表users'
列为:id
、user (varchar)
、pass(varchar)
我看了很多地方寻找答案,但没有找到答案。
确保查询在没有绑定的情况下先工作。
驱动程序可能不支持命名绑定!
尝试使用位置占位符绑定值:
qry.prepare("select pass from users WHERE user = ?");
qry.bindValue(0,this->user);