0

相关代码:

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()is never executedqry.lastError()返回一个空的错误字符串,我理解这意味着没有错误。但是使用一个delete from users作品。this->user是与数据库表中的内容匹配的字符串users。但查询永远不会执行。

users'列是:id, user (varchar)pass(varchar) 我查看了很多地方以寻找答案,但没有找到答案。

4

1 回答 1

0

确保查询在没有绑定的情况下工作。

您的驱动程序可能不支持命名绑定!

尝试使用位置占位符绑定值:

qry.prepare("select pass from users WHERE user = ?");
qry.bindValue(0,this->user);
于 2018-05-16T05:46:59.207 回答