作業系統是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
#include
int main(int argc, char *argv)
// 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))
// process results
result = mysql_store_result(conn);
if(result==null)
printf("%i records found\n", (int)mysql_num_rows(result));
// loop through all found rows
while((row = mysql_fetch_row(result)) != null)
printf("\n");
} // de-allocate memory of result, close connection
mysql_free_result(result);
mysql_close(conn);
return
0;}
C語言連線MySQL資料庫
不想用odbc什麼的連線資料庫,想直接用mysql提供的介面連線資料庫。我用的是vs2005。網上的一些介紹都是修改專案屬性等的設定,我不喜歡那樣。首先 我們需要的檔案有mysql.h my alloc.h my list.h mysql com.h mysql time.h mysql versi...
C語言連線mysql資料庫
一 分配或初始化與mysql real connect 相適應的mysql物件。用mysql init 函式。mysql mysql init mysql mysql 描述 分配或初始化與mysql real connect 相適應的mysql物件。如果mysql是null指標,該函式將分配 初始化...
C語言連線mysql資料庫
作業系統是linux,需要mysql客戶端軟體開發庫libmysqlclient,這個函式庫是mysql的組成部分之一。一般標頭檔案都在 usr include mysql路徑下,庫檔案都在 usr lib mysql路徑下。如果沒有需要安裝mysql devel包 mysql devel 5.1....