Linux MySQL 鏈接

在使用C/C++的API來鏈接MySQL數據庫時須要事先安裝:
mysql-server    MySQL 服務器端程序
mysql-client    MySQL 客戶端程序
mysql-devel MySQL   所需的庫和包含文件

假設在本機中存在一個名爲 test的數據庫,用戶名root,密碼 123456,在裏面有一個username表,定義以下:
create table username(id int not null primary key, username varchar(32) not null);

已在username表中存放了一些數據。使用C語言編程讀出username表中全部數據並輸出。

源代碼以下:
#include<mysql/mysql.h>
#include<stdio.h>
int main()
{
  MYSQL      *mysql;
  MYSQL_RES    *res;
  MYSQL_ROW  row;
  char *query = "select * from username";
  int t, r;

  mysql_init(mysql);
  if(!mysql_real_connect(mysql, "localhost", "root", "123456", "test", 0, NULL, 0))
  {
    printf("Error connecting to database: %s\n", mysql_error(mysql));
  }
  else
  {
    printf("Connected....\n");
  }
  t = mysql_query(mysql, query);
  if(t)
  {
    printf("Error making query: %s\n", mysql_error(mysql));
  }
  else
  {
    printf("Query made...\n");
    res =    mysql_use_result(mysql);
    if(res)
    {
      for(r=0; r<=mysql_field_count(mysql); r++)
      {
        row = mysql_fetch_row(res);
        if(row<0) break;
        for(t=0; t<mysql_num_fields(res); t++)
          printf("%s", row[t]);
        printf("\n");
      }    
    }
    mysql_free_result(res);
  }
  mysql_close(mysql);
  return 0;
}

編譯命令:
gcc c_mysql.c -L /usr/lib/mysql/ -lmysqlclient -o c_mysql

運行結果:
[root@localhost sql]# ./c_mysql 
Connected....
Query made...
1xiaoming
2xiaoer
3zhangsan

注意:
MySQL的庫文件在mysqlclient。所以在編譯MySQL程序的時候有必要加上 -lmysqlclient編譯選項。若是提示沒有找到mysql.h,產生這個錯誤的緣由是沒有mysql.h文件,他在mysql-devel包中,須要安裝這個包。
相關文章
相關標籤/搜索