mysql库操作

  • 库文件 libmysqlclient.so
 #include <iostream>                                                                                      
  #include <mysql/mysql.h>
      
  using namespace std;
      
  MYSQL* m_mysql = NULL;
  MYSQL_RES* m_result = NULL;
  
  void init_db(){ //初始化
      m_mysql = mysql_init(NULL);
      if(NULL == m_mysql)
          cout<<"mysql_init fail..."<<endl;
      m_mysql = mysql_real_connect(m_mysql,"127.0.0.1","root","123456","test",3306,NULL,0);
      if(NULL == m_mysql)
      {
          cout<<"连接失败"<<endl;
          return;
      }
      cout<<"连接成功"<<endl;
  }   
      
  int exeSql(string sql) // 执行sql
  {       
       return mysql_query(m_mysql,sql.c_str()); // 成功 0 失败非 0
  }       
      
  int selectSql(string sql)  // 查询sql
  {   
      int row = 0; // 返回的行数
      if(exeSql(sql)) //进入则为非0
         cout<<"run Sql err: "<<sql<<endl;
      m_result = mysql_store_result(m_mysql); // 取出结果集
      if(NULL == m_result)
      {  
          m_result = NULL;
          cout<<"查询结果为空"<<endl;
          return 0;
      }
      row = m_result->row_count; //获取结果集的行数
      cout<<"获取的行数为: "<<row<<endl;
      return row;
  }   
  void show_result() // 打印sql结果
  {
      unsigned int num_fileds; //结果集字段个数
      MYSQL_FIELD* content_arr; //结果集字段信息,数组
      num_fileds = mysql_num_fields(m_result);
      content_arr = mysql_fetch_field(m_result);

     for (int i=0;i<num_fileds;++i)
          printf("%s\t\t",content_arr[i].name);    //打印字段信息
      printf("\n");
      printf("================================================\n");
  
      MYSQL_ROW row; //内容每一个行信息
      while((row = mysql_fetch_row(m_result)) != NULL)
      {
         for (int i=0;i<num_fileds;++i)
              printf("%s\t\t",row[i]);
          printf("\n");
      }
      printf("---------------------------------------------------\n");
     printf("%d row in set \n",m_result->row_count);
  }
  void select_show(string sql)
  {
     selectSql(sql);
     if(NULL != m_result)
         show_result();
  }
  
  int main()
  {
      init_db();
      select_show("select * from student");
      mysql_free_result(m_result);
      mysql_close(m_mysql);
      return 0;
  }

posted on 2021-07-27 15:08  lodger47  阅读(47)  评论(0)    收藏  举报

导航