query.prepare(tr("select id,password form student where id=:id"))
query.bindValue(":id",id)
query.exec()
if(query.next()){
QString password = query.value(1).toString()
if(password == passwd)return true
}
return false
方法/步骤1
下载mysql C链接库
选择C的链接库
2
将C的连接库解压到到C:/mysql 目录下
3
我的QT 安装在C盘目录下,版本号是4.8.6 所以打开目录
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
4
将C:/mysql/lib/libmysql.dll 和C:/mysql/lib/libmysql.lib
复制到此处。
5
编辑目录下的mysql.pro文件
添加
INCLUDEPATH+="C:/mysql/include"
LIBS+="C:/mysql/lib/opt/libmysql.lib"
运行qt的控制台窗口,方便使用qmake
切换到目录下
C:\QT\4.8.6\src\plugins\sqldrivers\mysql
执行qmake
运行VS2010的控制台工具
切换到
C:\QT\4.8.6\src\plugins\sqldrivers\mysql 目录下
执行nmake 和nmake release
是nmake不是make
这样在C:\QT\4.8.6\src\plugins\sqldrivers\mysql 目录下的debug 目录和release 目录下分别会产生
qsqlmysqld4.dll qsqlmysqld4.lib
qsqlmysql4.dll qsqlmysql4.lib
将上面提到的四个文件复制到
C:\QT\4.8.6\plugins\sqldrivers
最后把
C:\mysql\lib\opt\libmysql.dll
C:\mysql\lib\opt\libmysql.lib
复制到
C:\Windows\system32\ 目录下。
最后测试mysql 可不可以在qt中正常使用
新建一个qt 控制台项目
输入以下代码
#include <QCoreApplication>
#include <QDebug>
#include <qstring.h>
#include <qstringlist.h>
#include <qsql.h>
#include <qsqldatabase.h>int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv)
qDebug() <<"Available drivers:"
QStringList drivers = QSqlDatabase::drivers()qDebug() <<driversreturn a.exec()
}
运行测试一下,看看有没有图片中红圈圈中的两项内容
首先:进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下 (我的目录为:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),这个下面有两个文件mysql.pro,一个mian.cpp! 用文本编辑器打开该目录下的mysql.pro文件 在mysql.pro中加入:INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"
保存并退出(即你的mysql的include 路径和 lib 下 opt 的 libmysql.lib 路径)
打开Qt 4.8.0 Command Prompt, 编译这个文件
#qmake -o Makefile mysql.pro
提示3条警告信息,但没影响
#mingw32-make (这个网上有好几个编译命令,我的是用nmake)
然后你会发现你的 qt 下这个 qt/plugins/sqldrivers路径(我的路径为S:\QT\4.8.0\plugins\sqldrivers下)下多了四个文件
分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四个)这样基本上就编译成功,可以使用 mysql 了!~
最后安全起见再将 mysql下 bin 文件中libmysql.dll文件拷贝到 system32 下面 然后测试:
#include<QtGui>#include<QtSql>#include<cstdlib>
#include<QtGui/QApplication>#include<QtSql/QtSql>boolcreateConnection() {
qDebug()<<"Availabledrivers:"
QStringListdrivers=QSqlDatabase::drivers()foreach(QStringdriver,drivers) qDebug()<<"\t"<<driver
QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL")qDebug()<<"MYSQLdrivervalid?"<<db.isValid()}
intmain(intargc,char*argv[]) {
至于mysql.pro我是在网上下载的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)