MySql API详解

https://blog.csdn.net/m0_37806112/article/details/82494023

 

MySql服务配置:

        MySql服务要运行起来,最好是开机自动启动。

        方法:chkconfig -level 345 mysqld on

不同版本的MySql有不同的目录设置:

    头文件:
         目录:/usr/include/mysql
         使用:#include <mysql/mysql.h>
         说明:必要时可使用-I参数
    库文件:
         静态库:/usr/lib/mysql/libmysqlclient.a
         动态库:/usr/lib/mysql/libmysqlclient.so
         使用参数:-L/usr/lib/mysql  -lmysqlclient

详解:

         MYSQL   mysql;  //句柄 

         MYSQL *mysql_init(MYSQL *mysql)

         返回值:
                      MYSQL句柄或描述符;
                      内存不足是为NULL;

         MYSQL *mysql_real_connect(MYSQL *mysql,const char *host, const char *user,  const char *passwd, const char *db,    \
         unsigned int port, const char *unix_socket, unsigned int client_flag)
         说明:
                   与数据库建立连接
                   失败返回NULL     

          int mysql_query(MYSQL *mysql, const char *query)

          功能:查询实现

          说明:

                  query为数据库操作命令字符串,本义是查询(select),可包括select,update,insert,delete等对数据库操作的命令。

          返回值:          

                  0表示正常,非0表示发生了错误。

           MYSQL_RES *mysql_store_result(MYSQL *mysql)

       功能:结果集处理。如果使用mysql_query运行的是一个SELECT语句,或其它可以返回结果的查询,可用函数mysql_store_result来访问返回结果并并将其保存在一个变量中,以便做进一步处理。

           说明:

                    mysql为mysql_real_connect函数的返回值。

           MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

           功能:读取结果集中的一行

           返回值:返回结果集中的一行,结果可以用数组来读取,默认为字符串数组

           eg:             

                 Row = mysql_fetch_row(result);
                 Row[0]….Row[n]
           int mysql_num_fields(result); //返回字段数

           void   mysql_free_result(result);

           作用:当对数据库使用完毕后,应对所创建的变量等进行释放:     

           mysql_close(&mysql);

实战:

 
  1. #include<stdio.h>

  2. #include<mysql.h>

  3.  
  4. int main()

  5. {

  6. MYSQL mysql;

  7. mysql_init(&mysql);

  8. if(mysql_real_connect(&mysql,"127.0.0.1","root","root","bookMIS",0,NULL,0)==NULL)

  9. {

  10. printf("%s\n",mysql_error(&mysql));

  11. return -1;

  12. }

  13. //mysql_query(&mysql,"insert into course values('00006','python','2018-09-14')");

  14. mysql_query(&mysql,"update course set courseName = 'python' where courseId=00005");

  15. if(mysql_query(&mysql,"select *from course ")!=0)

  16. {

  17. printf("%s\n",mysql_error(&mysql));

  18. return -1;

  19. }

  20. //获取查询结果

  21. MYSQL_RES *result=mysql_store_result(&mysql);

  22. if(result==NULL)

  23. {

  24. printf("%s\n",mysql_error(&mysql));

  25. return -1;

  26. }

  27. MYSQL_ROW row;

  28. int ncloumn=mysql_num_fields(result);

  29. while(row=mysql_fetch_row(result))

  30. {

  31. int i=0;

  32. for(i=0;i<ncloumn;i++)

  33. {

  34. printf("%s\t",row[i]);

  35. }

  36. printf("\n");

  37. }

  38. mysql_free_result(result);

  39. mysql_close(&mysql);

  40.  
  41. }

编译:

 
  1. cc=gcc

  2. obj= sql.o

  3. CFLAGS =-I/usr/include/mysql

  4. CFLAGS2=-L/usr/lib/mysql -lmysqlclient

  5. edit:$(obj)

  6. $(cc) $(obj) $(CFLAGS) -o edit $(CFLAGS2)

  7. .PHONY:clean

  8. clean:

  9. rm edit $(obj)

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值