Linux C连接Mysql数据库的方法

1.首先要找到mysql.h头文件的位置
/usr/include/mysql
(使用命令 where is mysql 可以找到mysql安装的位置)

2.源文件的编译方法
   1.先编译    gcc -o connect mysql2.c  -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient    (mysql -lmysqlclient之间要  有空格,—I 是加入 include头文件,-L是加入lib)
  2.后执行    ./connect

3.操作数据库的代码

/*
 ============================================================================
 Name        : mysql.c
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include </usr/include/mysql/mysql.h>

/**
 * 测试链接数据库
 */
void ConnectionTest();

/**
 * 插入数据
 */
void InsertData();

/**
 * 删除数据
 */
void DeleteData();

/**
 * 查询数据
 */
void QueryData();

int main(void) {
	//ConnectionTest();
	//InsertData();
	//DeleteData();
	QueryData();
	return 0;

}


/**
 * 测试链接数据库
 */
void ConnectionTest(){

    MYSQL mysql;
    //int t,r;
    mysql_init(&mysql);
    /**
     * &mysql:数据库的;连接句柄引用
     * "localhost": 数据库的位置,"localhost"表示本机,也可以用ip地址远程链接
     * "root":管理员名陈
     * "123":密码
     * "test":数据库名称
     */
    if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){

    	printf("Connted Mysql successful!\n");
    }else{
    	printf("Connted Mysql failed!\n");
    }

    mysql_close(&mysql);

}

/**
 * 插入数据
 */
void InsertData(){
    MYSQL mysql;//mysql数据库链接句柄
    MYSQL_RES *res;//该结构代表返回行的查询结果
    MYSQL_ROW row;//这个是一行数据的类型安全
    char *query;
    int flag;
    mysql_init(&mysql);
    if(mysql_real_connect(&mysql, "localhost","root","123","test",0,NULL,0)){

        	printf("Connted Mysql successful!\n");
        }else{
        	printf("Connted Mysql failed!\n");
     }

     query = "insert into student(id,name) values(5,5)";
     /**
      * flage 为插入的标记变量,插入成功返回0
      */
     flag = mysql_real_query(&mysql,query,(unsigned int)strlen(query));

     if(flag == 0){
    	 printf("Insert data success !\n");
     }else{
    	 printf("Inser data failure !\n");
     }

     mysql_close(&mysql);
}

/**
 * 删除数据
 */
void DeleteData(){
	  MYSQL mysql;
	  MYSQL_RES *res;
	  MYSQL_ROW row;
	  char* query;
	  int flag;
	  mysql_init(&mysql);
	  if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){
		  printf("Connted Mysql successful!\n");
	  }else{
		  printf("Connted Mysql failed!\n");
	  }
	  query = "delete from student where id=1";
	  /**
	   * flage 为删除的标记变量,删除成功返回0
	   */
	  flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
	  if(flag == 0){
		  printf("Delete data success !\n");
	  }else{
		  printf("Delete data failure !\n");
	  }

	  mysql_close(&mysql);
}

/**
 * 查询数据
 */
void QueryData(){
	  MYSQL mysql;
	  MYSQL_RES *res;
	  MYSQL_ROW row;
	  char* query;
	  int flag,i;
	  mysql_init(&mysql);
	  if(mysql_real_connect(&mysql,"localhost","root","123","test",0,NULL,0)){
		  printf("Connted Mysql successful!\n");
	  }else{
		  printf("Connted Mysql failed!\n");
	  }
	  query = "select * from student";
	  /**
	   * flage 为查询的标记变量,查询成功返回0
	   */
	  flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
	  if(flag == 0){
		  printf("query data success  [%s]!\n",query);
	  }else{
		  printf("query data failure !\n");
	  }

	  /*mysql_store_result讲全部的查询结果读取到客户端*/
      res = mysql_store_result(&mysql);

      /*mysql_fetch_row检索结果集的下一行*/
      while(row = mysql_fetch_row(res)){

      /*mysql_num_fields返回结果集中的字段数目*/
    	  for(i=0;i<mysql_num_fields(res);i++){
               printf("%s\t",row[i]);
    	  }
    	  printf("\n");
      }

	  mysql_close(&mysql);
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值