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

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

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

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

第一步:

安裝mysql, 參考:http://www.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è)置和數(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

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

相關(guān)文章

最新評論

嵩明县| 唐河县| 宣威市| 宁波市| 新民市| 瓦房店市| 涟水县| 连州市| 讷河市| 广饶县| 宝应县| 枣庄市| 藁城市| 平昌县| 扎兰屯市| 葵青区| 云霄县| 大安市| 富平县| 永济市| 静宁县| 厦门市| 醴陵市| 博白县| 陵川县| 永昌县| 尼玛县| 凤台县| 成安县| 仙桃市| 镇坪县| 鄢陵县| 香河县| 星子县| 柳江县| 涟源市| 龙口市| 宝兴县| 新巴尔虎右旗| 巴东县| 德保县|