相关代码:
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)
我看了很多地方的答案,但没有找到答案。
答案 0 :(得分:0)
确保查询在没有绑定的情况下正常工作。
您的驱动程序可能不支持命名绑定!
使用位置占位符尝试绑定值:
qry.prepare("select pass from users WHERE user = ?");
qry.bindValue(0,this->user);