程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言連接mysql數據庫

C語言連接mysql數據庫

編輯:關於C
操作系統是Linux,需要mysql客戶端軟件開發庫libmysqlclient,這個函數庫是mysql的組成部分之一。 一般頭文件都在/usr/include/mysql路徑下,庫文件都在/usr/lib/mysql路徑下。 如果沒有需要安裝mysql-devel包(mysql-devel-5.1.47-4.el6.i686.rpm) [**@**]# rpm -ivh mysql-devel-5.1.47-4.el6.i686.rpm 安裝完成後可以去那兩個路徑下看看有沒有,如果沒有就查找一下 [**@**]# find / -name mysql.h [**@**]# find / -name mysqlclient 看一下路徑在哪裡。     安裝完成後,就可以編譯連接C源程序了。     [**@**]# gcc -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient *.c 編譯成功即可運行。     解釋下: gcc GNU C/C++編譯器 -I指定頭文件所在路徑(大寫i) -L 指定庫文件所在路徑 -l 與所需要的動態鏈接庫鏈接起來(小寫L) 這麼長的編譯命令一般都在make文件裡面寫了     關於動態鏈接庫可以添加一個環境變量 [**@**]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usrlib/mysql 不過一勞永逸的辦法是:將這句話LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usrlib/mysql添加在.bashrc裡面   最後源碼: [cpp]  #include <stdio.h>   #include <mysql.h>      int main(int argc, char *argv[])   {     int i;     MYSQL *conn;        // connection to MySQL server     MYSQL_RES *result;  // result of SELECT query     MYSQL_ROW row;      // one record (row) of SELECT query        // connect to MySQL     conn = mysql_init(NULL);     // mysql_options(conn, MYSQL_READ_DEFAULT_GROUP, "myclient");     if(mysql_real_connect(           conn, "localhost", "root", "uranus", //此處更改用戶名密碼           "mylibrary", 0, NULL, 0) == NULL) {         fprintf(stderr, "sorry, no database connection ...\n");         return 1;       }        // only if utf8 output is needed     mysql_query(conn, "SET NAMES 'utf8'");        // retrieve list of all publishers in mylibrary     const char *sql="SELECT COUNT(titleID), publName \                      FROM publishers, titles \                      WHERE publishers.publID = titles.publID  \                      GROUP BY publishers.publID \                      ORDER BY publName";     if(mysql_query(conn, sql)) {       fprintf(stderr, "%s\n", mysql_error(conn));       fprintf(stderr, "Fehlernummer %i\n", mysql_errno(conn));       fprintf(stderr, "%s\n", sql);       return 1;     }        // process results     result = mysql_store_result(conn);     if(result==NULL) {       if(mysql_error(conn))         fprintf(stderr, "%s\n", mysql_error(conn));       else         fprintf(stderr, "%s\n", "unknown error\n");       return 1;     }     printf("%i records found\n", (int)mysql_num_rows(result));        // loop through all found rows     while((row = mysql_fetch_row(result)) != NULL) {       for(i=0; i < mysql_num_fields(result); i++) {         if(row[i] == NULL)           printf("[NULL]\t");         else           printf("%s\t", row[i]);       }       printf("\n");     }        // de-allocate memory of result, close connection     mysql_free_result(result);     mysql_close(conn);     return 0;   }    
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved