Qt SQL准备失败

时间:2014-04-18 03:48:14

标签: c++ sql qt qtsql

我正在尝试运行此Qt代码

QString serverName = "localhost";
QString dbName = "zfserver";
QString userName = "root";
QString passWord = "123456";

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setConnectOptions();

db.setHostName(serverName);
db.setDatabaseName(dbName);
db.setUserName(userName);
db.setPassword(passWord);

if(db.open())
{
    QSqlQuery query;
    query.prepare("INSERT INTO account (name, email, password, type) "
                  "VALUES (:name, :email, :password, :type)");
    query.bindValue(":name", "atef");
    query.bindValue(":email", "asfasf@gfasga.com");
    query.bindValue(":password", "123");
    query.bindValue(":type", "2");

    if (query.exec())
    {
        qDebug() << "OK";
    } else {
        qDebug() << "Error" << query.lastError().text();
    }

    db.close();
}

但是我收到了这个错误

  

错误“使用不支持的缓冲区类型:1701601889(参数:1)QMYSQL3:无法使用        绑定值“

如果我更改没有bindValue的查询,它就可以工作。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试重建SQL驱动程序。

QMYSQL3似乎已经过时了。