由于6.3无法用QT内部的SQL因此改用C语言的方法连接数据库
MySQL创建数据库参考:
MySQL创建数据库和创建数据表_小斌哥ge的博客-CSDN博客_mysql怎么创建数据表MySQL 创建数据库和创建数据表MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。在这之前,需要先安装好 MySQL ,然后创建好数据库、数据表、操作用户。一、数据库操作语言数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是SQL(Structured Query Language) 结构化查询语言。SQL 的主要功能是和数据库...https://blog.csdn.net/weixin_43790276/article/details/102655786?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166381439116782414920913%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166381439116782414920913&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-102655786-null-null.142%5Ev49%5Epc_rank_34_1,201%5Ev3%5Eadd_ask&utm_term=mysql%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93&spm=1018.2226.3001.4187MySQL Workbench使用教程_liyangtheking的博客-CSDN博客_mysql workbench怎么打开MySQL Workbench使用教程C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应!MySQLWorkbench 是一款专为 MySQL 设计的集成化桌面软件,也是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化两个版本。该软件支持 Windows 和 Linux 系统,可以从MySQL :: Download MySQL Workbe..https://blog.csdn.net/liyangtheking/article/details/121802689?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166381477416782414945405%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166381477416782414945405&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-121802689-null-null.142%5Ev49%5Epc_rank_34_1,201%5Ev3%5Eadd_ask&utm_term=mysql%20workbench%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187
在CMack.txt文件中引入
include_directories(D:/MySQL/include) //打开mysql.h文件
link_directories(D:/MySQL/lib) //打开mysql.lib文件
target_link_libraries(login_scr PRIVATE Qt${QT_VERSION_MAJOR}::Widgets libmysql) //连接到库
C语言的方法是在头文件中引入#include<mysql.h>
widget.hpp
#ifndef WIDGET_H
#define WIDGET_H
#include<mysql.h>
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
MYSQL mysql;
private slots:
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "./ui_widget.h"
#include<QMessageBox>
#include<mysql.h>
#include<string.h>
#include<QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//mysql_init为MySQL的函数,这个函数用来分配或者初始化一个MYSQL对象,用于连接mysql服务端
mysql_init(&mysql);
//mysql_real_connect(&mysql,"主机名或IP地址","MySQL登录ID","MySQL密码","数据库名称",接口,unix_socket,client_flag)
//如果接口不是0,其值将用作TCP/IP连接的端口号
//unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道
//如果连接成功,返回值与第1个参数的值相同,如果连接失败,返回NULL
if(NULL!=mysql_real_connect(&mysql, "127.0.0.1", "root", "密码", "dbtest", 0, NULL, 0))
{
qDebug()<<"Connected to Mysql successfully!";
}
else {
qDebug()<<" Connect failed";
}
//设置输入模式,输入密码时为黑点
ui->lineEdit_2->setEchoMode(QLineEdit::PasswordEchoOnEdit);
connect(ui->pushButton_1,&QPushButton::clicked,this,[=](){
QString zhanghao,mima,query;
zhanghao = ui->lineEdit_1->text();
mima=ui->lineEdit_2->text();
qDebug()<<zhanghao<<mima;
//SQL查找语句
query="select * from user where username='"+zhanghao+"' and password='"+mima+"'";
qDebug()<<"SQL:"<<query;
//QString转std标准库的String
std::string qu=query.toStdString();
//mysql_query()查询成功则返回0
int res=mysql_query(&mysql,qu.data());
if(res==0)
{
//mysql_store_result()取出查询到的结果集
MYSQL_RES *result = mysql_store_result(&mysql);
//取结果集行数,只有一行则登录成功
my_ulonglong rowCount = mysql_num_rows(result);
if (rowCount == 1)
{
qDebug()<<"successfully!";
}
else
{
qDebug()<<"failed";
}
}
else
qDebug()<<"res:"<<res;
});
}
Widget::~Widget()
{
delete ui;
}