时间:2025-04-26 15:41
人气:
作者:admin
编译器:Visual Studio Community 2022
数据库:MySQL 8.0.37 Community



#include<stdio.h>
#include<stdlib.h>
#include <winsock.h>
#include <mysql.h>
#pragma comment (lib, "libmysql.lib")
int main()
{
//变量定义
MYSQL* conn; //数据库连接句柄
MYSQL_RES* res; //执行数据库语言结果
MYSQL_ROW row; //存放一个数据记录
char* server = "localhost";//本地连接
char* user = "root";//
char* password = "123456";//mysql密码
char* database = "mysql_test";//数据库名
char* query = "select * from student";//需要查询的语句
int t;
conn = mysql_init(NULL); //句柄初始化
//尝试连接到数据库
if (!mysql_real_connect(conn, server, user, password, database, 3306, NULL, 0)) //判断是否连接成功
{
printf("Error connecting to database:%s\n", mysql_error(conn));
}
else
{
printf("Connected...\n");
}
//字符编码,解决乱码
if (!mysql_set_character_set(conn, "gbk"))
{
printf("New client character set: %s\n",
mysql_character_set_name(conn));
}
//调用API根据用户输入的Query对数据库操作
if (mysql_query(conn, query))
{
printf("Error making query:%s\n", mysql_error(conn));
}
else
{
printf("Query made...\n");
res = mysql_use_result(conn); //获取结果
if (res)
{
while ((row = mysql_fetch_row(res)) != NULL)
{
//printf("num=%d\n",mysql_num_fields(res));//列数
for (t = 0; t < mysql_num_fields(res); t++)
printf("%8s ", row[t]);
printf("\n");
}
}
mysql_free_result(res); //释放res占用的内存空间
}
mysql_close(conn); //断开数据库
//system("pause");
return 0;
}
drop database if exists mysql_test cascade;
create database mysql_test;
use mysql_test;
create table student (
s_id int,
s_name varchar(8),
s_birth date,
s_sex varchar(4)
);
insert into student values
(1,'赵雷','1990-01-01','男'),
(2,'钱电','1990-12-21','男'),
(3,'孙风','1990-05-20','男'),
(4,'李云','1990-08-06','男'),
(5,'周梅','1991-12-01','女'),
(6,'吴兰','1992-03-01','女'),
(7,'郑竹','1989-07-01','女'),
(8,'王菊','1990-01-20','女');
编译
生成->重新生成解决方案
出现:“全部重新生成:1成功,0失败,0已跳过”即编译完成,无错误

调试
->按下调试按钮F5
运行成功,如图所示

报错
上一篇:函数指针与指针函数的区别
下一篇:原子操作