百度网盘链接: mysql-installer-community-5.7.40.0 (直接点击蓝色字体即可) 提取码:1111
1.打开安装的MySQL
2.登录MySQL
3.查看字符集。
show variables like 'character_set_%';
4.将字符集设置为utf-8.
(1)C:\ProgramData\MySQL\MySQL Server 5.7在电脑上打开这个路径。
在这个地方的下一行添加
default-character-set=utf8
在[mysqld]这个地方的下一行添加
character-set-server=utf8
按ctr+s保存。
然后关闭MySQL命令行窗口,打开任务管理器。右击重启MySQL服务
然后再次打开MySQL,查看字符集。
到这里MySQL的安装就完成了。
打开MySQL的安装路径,如果是按这篇博客安装的MySQL,安装路径在:C:\Program Files 下 找到MySQL文件夹打开
找到如下位置:
1.第一步先复制include文件夹
2.粘贴到创建的C语言项目文件夹下,并修改文件夹名为mysql
3.进入MySQL安装目录下的lib
将这两个依赖库复制粘贴到C语言项目文件夹下
最后项目文件夹中会多出1个文件夹,两个依赖库
mysql C语言 API函数查询网址: https://www.mysqlzh.com/api/1.html
注意:
这段代码的测试前一定要先在MySQL数据库中创建一个linkgame数据库和game_users表,表有三个字段。如下
CREATE DATABASE linkgame;
CREATE TABLE game_users(
id CHAR(10) KEY,
uname CHAR(20) NOT NULL,
score INT
);
对表操作测试代码,代码在vs下运行时需要切换到64位平台上,连接数据库的密码和数据库的名称根据自己的需求来修改。
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
/*引入连接Mysql的头文件和lib包*/
#include "mysql/mysql.h"
#pragma comment(lib,"libmysql")
/*定义一些数据库连接需要的宏*/
#define HOST "localhost" /*MySql服务器地址*/
#define USERNAME "root" /*用户名*/
#define PASSWORD "root" /*数据库连接密码*/
#define DATABASE "linkgame" /*需要连接的数据库*/
// 执行sql语句的函数
void exeSql(char* sql) {
MYSQL my_connection; /*数据库连接*/
int res; /*执行sql语句后的返回标志*/
MYSQL_RES* res_ptr; /*执行结果*/
MYSQL_ROW result_row; /*按行返回查询信息*/
MYSQL_FIELD* field; /*返回表字段*/
int row, column; /* 定义行数,列数*/
mysql_init(&my_connection);
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS))
{
//printf("数据库连接成功!");
/*vs默认编码为 gbk 防止乱码*/
mysql_query(&my_connection, "set names gbk");
res = mysql_query(&my_connection, sql);
if (res) {
/*现在就代表执行失败了*/
printf("Error: mysql_query !\n");
/*不要忘了关闭连接*/
mysql_close(&my_connection);
}
else
{
/*现在就代表执行成功了*/
/*mysql_affected_rows会返回执行sql后影响的行数*/
printf("%lld 行受到影响!\n", mysql_affected_rows(&my_connection));
// 把查询结果装入 res_ptr
res_ptr = mysql_store_result(&my_connection);
// 存在则输出
if (res_ptr)
{
// 获取行数,列数
row = (int)mysql_num_rows(res_ptr);
column = (int)mysql_num_fields(res_ptr);
//打印字段
field = mysql_fetch_fields(res_ptr);
for (int i = 0; i < column; i++)
{
printf("%s ", field->name);
field++;
}
printf("\n");
// 执行输出结果,从第二行开始循环(第一行是字段名)
for (int i = 1; i < row + 1; i++)
{
// 一行数据
result_row = mysql_fetch_row(res_ptr);
for (int j = 0; j < column; j++)
{
printf("%s ", result_row[j]);
}
printf("\n");
}
}
/*不要忘了关闭连接*/
mysql_close(&my_connection);
}
}
else
{
printf("数据库连接失败!");
}
}
int main()
{
exeSql("insert into game_users values ('002','xiaowang',90);");
exeSql("insert into game_users values ('001','小王',90);");
exeSql("select * from game_users;");
return 0;
}