数据库C语言API编写实例

基本内容的介绍,在另一篇文章中: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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值