Linux平臺上用C語言實現與MySQL數據庫的連接?

一般中小型網站的開發都選擇 MySQL 作為網站數據庫,C語言和MySQL數據庫的交互操作就顯得尤為重要。

工具/原料

Windows7

VMware Workstation 12 Pro

ubuntu-15.10

方法/步驟

安裝編譯工具 ---- 這將安裝gcc/g++/gdb/make 等基本編程工具:

sudo apt-get install build-essential

Linux平臺上用C語言實現與MySQL數據庫的連接

輸入命令"sudo apt-get install mysql",再連按2下Tab鍵,目的是查看自己當前的軟件源中有關mysql的信息。

Linux平臺上用C語言實現與MySQL數據庫的連接

我選擇安裝:

sudo apt-get install mysql-server mysql-client

Linux平臺上用C語言實現與MySQL數據庫的連接

輸入命令"sudo apt-get install libmysql",再連按2下Tab鍵,查看自己當前的軟件源中有關libmysql的信息。

Linux平臺上用C語言實現與MySQL數據庫的連接

其他程序在編譯使用MySQL時鏈接使用的庫和頭文件,我選擇安裝libmysqlclient-dev(選擇安裝其他的也可以,但不一定都能編譯通過):

sudo apt-get install libmysqlclient-dev

Linux平臺上用C語言實現與MySQL數據庫的連接

查看安裝的MySQL版本:

mysql --version

連接MySQL客戶端函數庫所需要的頭文件的存放位置:

mysql_config --cflags

連接MySQL客戶端函數庫所需要的庫文件的存放位置

mysql_config --libs

Linux平臺上用C語言實現與MySQL數據庫的連接

測試代碼如下:

//查詢操作

#include

#include

#include

#define HOST "localhost"

#define USERNAME "用戶名"

#define PASSWORD "密碼"

#define DATABASE "PublicResourcesDB"

int main(void)

{

MYSQL mysql;

MYSQL_ROW row;

MYSQL_RES *result;

unsigned int num_fields;

unsigned int i;

mysql_init(&mysql);

if(!mysql_real_connect(&mysql, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, 0))

{

printf("Connection failed,%s\n",mysql_error(&mysql));

}

mysql_query(&mysql, "set names utf8");

if(!mysql_query(&mysql,"SELECT * FROM area"))

{

result = mysql_store_result(&mysql);

if(!result)

{

perror("result error.");

exit(1);

}

num_fields = mysql_num_fields(result);

while(row = mysql_fetch_row(result))

{

for(i=0; i

{

printf("%s\t",row[i]);

}

printf("\n");

}

mysql_free_result(result);

}

mysql_close(&mysql);

return 0;

}

編譯命令:

gcc -o mysql_test mysql_test.c `mysql_config --cflags --libs`

(或者gcc -o mysql_test mysql_test.c -lmysqlclient)

運行命令:

./mysql_test

運行後的結果和用MySQL Workbench查詢出來的結果一樣。

Linux平臺上用C語言實現與MySQL數據庫的連接

Linux平臺上用C語言實現與MySQL數據庫的連接

Linux平臺上用C語言實現與MySQL數據庫的連接

相關問題答案