基础DOME可以用于学习借鉴;
具体代码
javascript
#include <stdio.h>
#include <mysql.h> // mysql 文件,如果配置ok就可以直接包含这个文件
//宏定义 连接MySQL必要参数
#define SERVER "localhost" //或 127.0.0.1
#define USER "root"
#define PASSWORD "W113416w+" //password
#define DATABASE "domedata" //your_database
int main(void) {
MYSQL mysql; //数据库句柄
MYSQL_RES* res; //查询结果集
MYSQL_ROW row; //记录结构体
//初始化数据库
mysql_init(&mysql);
if (&mysql == NULL) {
//fprintf(stderr, "%s\n", mysql_error(&mysql));
exit(1);
}
//设置字符编码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库
if (mysql_real_connect(&mysql, SERVER, "root",
//"password", "database_name"分别填写自己的的数据库登录密码和表所在的数据库名称
//这里替换成自己的的数据库等路密码和自己所建的数据库名称即可
PASSWORD, DATABASE, 3306, NULL, 0) == NULL) {
//fprintf(stderr, "%s\n", mysql_error(&mysql));
mysql_close(&mysql);
printf("错误原因: %s\n", mysql_error(&mysql));
printf("连接失败!\n");
exit(-1);
}
//查询数据
int ret = mysql_query(&mysql, "select * from student;");
//student是自己在数据库中所建的表名
printf("ret: %d\n", ret);
printf("第一次打印数据库 \n"); //打印
//获取结果集
res = mysql_store_result(&mysql);
//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); //打印 ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
// 插入数据
if (mysql_query(&mysql, "INSERT INTO student (id,name,age,grade,iphone) VALUES (2,'Alice', 20,92,'15555556666')")) {
fprintf(stderr, "%s\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(1);
}
printf("Inserted successfully.\n");
// 查询数据
printf("------插入数据后:------第二次打印数据库 \n"); //打印
ret = mysql_query(&mysql, "select * from student;");
//student是自己在数据库中所建的表名
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); //打印 ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
// 更新数据
if (mysql_query(&mysql, "UPDATE student SET grade = 99 WHERE name = 'Alice'")) {
//fprintf(stderr, "%s\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(1);
}
printf("Updated successfully.\n");
// 查询数据
printf("------修改数据后:------第三次打印数据库 \n"); //打印
ret = mysql_query(&mysql, "select * from student;");
//student是自己在数据库中所建的表名
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); //打印 ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
// 删除数据
if (mysql_query(&mysql, "DELETE FROM student WHERE name = 'Alice'")) {
//fprintf(stderr, "%s\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(1);
}
printf("Deleted successfully.\n");
// 查询数据
printf("------删除数据后:------第四次打印数据库 \n"); //打印
ret = mysql_query(&mysql, "select * from student;");
//student是自己在数据库中所建的表名
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); //打印 ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
//释放结果集
mysql_free_result(res);
//关闭数据库
mysql_close(&mysql);
system("pause");
return 0;
}
输出结果:
javascript
ret: 0
第一次打印数据库
0 李四 21 98
1 王五 20 85
Inserted successfully.
------插入数据后:------第二次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 92
Updated successfully.
------修改数据后:------第三次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
2 Alice 20 99
Deleted successfully.
------删除数据后:------第四次打印数据库
ret: 0
0 李四 21 98
1 王五 20 85
请按任意键继续. . .