qt mysql添加记录不成功

eskimoer 2013-08-09 04:07:57
在用qt对数据库做一些操作,但是利用QSqlQuery类的prepare时,出现失败,请问这是为什么
代码如下:

#include <QtCore/QCoreApplication>
#include <qstring.h>
#include <qstringlist.h>
#include <qsqlerror.h>
#include <QDebug>
#include <QtSql>
#include <QTextCodec>
#include <iostream>

void initCodec()
{
QTextCodec *codec = QTextCodec::codecForName("System");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
}


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

initCodec();
qDebug() << QSqlDatabase::drivers();

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("238.178.4.69");
db.setPort(3306);
db.setDatabaseName("****");
db.setUserName("****");
db.setPassword("****");
if(db.open())
std::cout<<"Connect database successfully\n";
else
std::cout<<"Connect database unsuccessfully\n";


QSqlQuery query;
//bp的值是false
bool bp = query.prepare("INSERT INTO table_test (id, text, name,key) VALUES (?, ?, ?,?)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();
db.close();
return a.exec();
}

...全文
418 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
eskimoer 2013-08-09
  • 打赏
  • 举报
回复
原因是很简单,创建的表中的列名用到了mysql中关键字key,所以会造成平prepare返回失败,把key换成别的非关键词就好了

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧