最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux 下C語言連接mysql實例詳解

 更新時間:2017年04月04日 09:49:23   作者:嵐漾憶雨  
這篇文章主要介紹了Linux 下C語言連接mysql實例詳解的相關(guān)資料,需要的朋友可以參考下

Linux 下C語言連接mysql實例詳解

第一步:

安裝mysql, 參考:http://m.fzitv.net/article/39190.htm

第二步:

安裝mysql.h函數(shù)庫

sudo apt-get install libmysqlclient-dev

執(zhí)行之后就可以看到/usr/include/MySQL目錄了

然后開始我們的鏈接.

首先看我的數(shù)據(jù)庫

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| chat_room     |
| mysql       |
| mysql_shiyan    |
| performance_schema |
| sys        |
+--------------------+
6 rows in set (0.00 sec)
mysql> use chat_room;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_chat_room |
+---------------------+
| user_message    |
+---------------------+
1 row in set (0.00 sec)
mysql> select * from user_message;
+------+-------+--------+
| ID  | name | passwd |
+------+-------+--------+
|  1 | linux | linux |
|  2 | lyt  | lyt  |
+------+-------+--------+
2 rows in set (0.00 sec)

可以看到,我在chat_room數(shù)據(jù)庫中有user_message這張表,我們現(xiàn)在要做的就是讀出這張表里的數(shù)據(jù).

直接上代碼

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<mysql/mysql.h>

int main(void)
{
  char *sql;
  sql="SELECT * FROM user_message;";
  int res;//執(zhí)行sql語句后的返回標志
  MYSQL_RES *res_ptr;//指向查詢結(jié)果的指針
  MYSQL_FIELD *field;//字段結(jié)構(gòu)指針
  MYSQL_ROW result_row;//按行返回查詢信息
  int row,column;//查詢返回的行數(shù)和列數(shù)
  MYSQL *conn;//一個數(shù)據(jù)庫鏈接指針
  int i,j;

  //初始化連接句柄
  conn = mysql_init(NULL);

  if(conn == NULL) { //如果返回NULL說明初始化失敗
    printf("mysql_init failed!\n");
    return EXIT_FAILURE;
  }

  //進行實際連接
  //參數(shù) conn連接句柄,host mysql所在的主機或地址,user用戶名,passwd密碼,database_name數(shù)據(jù)庫名,后面的都是默認
  conn = mysql_real_connect(conn,"localhost","lyt","","chat_room",0,NULL,0);
  if (conn) {
    printf("Connection success!\n");
  } else {
    printf("Connection failed!\n");
  }
  mysql_query(conn,"set names gbk");//防止亂碼。設置和數(shù)據(jù)庫的編碼一致就不會亂碼

  res = mysql_query(conn,sql);//正確返回0
  if(res) {
    perror("my_query");
    mysql_close(conn);
    exit(0);
  } else{
    //把查詢結(jié)果給res_ptr
    res_ptr = mysql_store_result(conn);
    //如果結(jié)果不為空,則輸出
    if(res_ptr) {
      column = mysql_num_fields(res_ptr);
      row = mysql_num_rows(res_ptr);
      printf("查到%d行\(zhòng)n",row);
      //輸出結(jié)果的字段名
      for(i = 0;field = mysql_fetch_field(res_ptr);i++) {
        printf("%10s",field->name);
      }
      puts("");
      //按行輸出結(jié)果
      for(i = 1;i < row+1;i++){
        result_row = mysql_fetch_row(res_ptr);
        for(j = 0;j< column;j++) {
          printf("%10s",result_row[j]);
        }
        puts("");
      }
    }
  }
  //退出前關(guān)閉連接
  mysql_close(conn);

  return 0;
}

結(jié)果

gcc -o mysql a.c -L/usr/lib/mysql -lmysqlclient
./mysql 
Connection success!
查到2行
    ID   name  passwd
     1   linux   linux
     2    lyt    lyt

注釋寫的相當清楚,有什么不清楚的可以給我留言,大家一塊學習!

相關(guān)文章

最新評論

保亭| 琼海市| 珠海市| 大方县| 东乡族自治县| 济宁市| 南康市| 梁河县| 靖宇县| 桑日县| 磐安县| 洛隆县| 津南区| 招远市| 大悟县| 宣汉县| 山丹县| 保亭| 休宁县| 泗水县| 紫金县| 老河口市| 个旧市| 嘉义县| 长沙县| 马鞍山市| 宾阳县| 临朐县| 承德市| 习水县| 犍为县| 栾川县| 东辽县| 四川省| 阳城县| 镇远县| 桦甸市| 宜城市| 陇南市| 丰城市| 奉节县|