基本内容的介绍,在另一篇文章中:MYSQL_C语言接口
这里给出应用实例:
直接上代码,其中有详细注释:
mysql.cpp
#include <stdio.h>
#include <mysql.h>
#include <string.h>
int main(int argc, const char *argv[])
{
MYSQL mysql;
MYSQL_RES *res = NULL;
MYSQL_ROW row;
char *query_str = NULL;
int rc, i, fields;
int rows;
if (NULL == mysql_init(&mysql)) { //初始化mysql变量
printf("mysql_init(): %s\n", mysql_error(&mysql));
return -1;
}
if (NULL == mysql_real_connect(&mysql, //链接mysql数据库
"localhost", //链接的当地名字
"root", //用户名字
"root", //用户密码
"RUNOOB", //所要链接的数据库
0,
NULL,
0)) {
printf("mysql_real_connect(): %s\n", mysql_error(&mysql));
return -1;
}
printf("1. Connected MySQL successful! \n");
//利用mysql_real_query()函数 ,其实就是执行相应的 SQL 语句
/***********************************插入**************************************************/
query_str = "insert into runoob_tbl values (1,'chu' ,'insert', '2017')"; //插入 SQL 语句
rc = mysql_real_query(&mysql, query_str, strlen(query_str)); //对数据库执行 SQL 语句
if (0 != rc) {
printf("mysql_real_query(): %s\n", mysql_error(&mysql));
return -1;
}
/************************************删除*******************************************/
query_str = "delete from runoob_tbl where runoob_id=2"; //删除 SQL 语句
rc = mysql_real_query(&mysql, query_str, strlen(query_str)); //对数据库 执行 SQL 语句
if (0 != rc) {
printf("mysql_real_query(): %s\n", mysql_error(&mysql));
return -1;
}
/*************************************查询**********************************************/
query_str = "select * from runoob_tbl"; //查询语句,查询数据表
rc = mysql_real_query(&mysql, query_str, strlen(query_str));
if (0 != rc) {
printf("mysql_real_query(): %s\n", mysql_error(&mysql));
return -1;
}
/********************************获取查询结果******************************************/
res = mysql_store_result(&mysql); //获取查询结果,该结果为上次查询的信息
if (NULL == res) {
printf("mysql_restore_result(): %s\n", mysql_error(&mysql));
return -1;
}
rows = mysql_num_rows(res); //获取查询结果的行数
printf("The total rows is: %d\n", rows);
fields = mysql_num_fields(res); //获取查询结果的列数
printf("The total fields is: %d\n", fields);
while ((row = mysql_fetch_row(res))) { //一条一条得到查询的结果
for (i = 0; i < fields; i++) {
printf("%s\t", row[i]);
}
printf("\n");
}
mysql_free_result(res); //释放查询结果缓冲区
mysql_close(&mysql); //关闭链接,释放空间
return 0;
}
Makefile:
CC=gcc
OBJ = mysql
all:
$(CC) -o $(OBJ) *.c -lpthread -Wall -Werror -O2 -I/usr/include/mysql/ -L/usr/lib/mysql -lmysqlclient -g
clean:
-rm -rf *.o