一般中小型網站的開發都選擇 MySQL 作為網站數據庫,C語言和MySQL數據庫的交互操作就顯得尤為重要。
工具/原料
Windows7
VMware Workstation 12 Pro
ubuntu-15.10
方法/步驟
安裝編譯工具 ---- 這將安裝gcc/g++/gdb/make 等基本編程工具:
sudo apt-get install build-essential
輸入命令"sudo apt-get install mysql",再連按2下Tab鍵,目的是查看自己當前的軟件源中有關mysql的信息。
我選擇安裝:
sudo apt-get install mysql-server mysql-client
輸入命令"sudo apt-get install libmysql",再連按2下Tab鍵,查看自己當前的軟件源中有關libmysql的信息。
其他程序在編譯使用MySQL時鏈接使用的庫和頭文件,我選擇安裝libmysqlclient-dev(選擇安裝其他的也可以,但不一定都能編譯通過):
sudo apt-get install libmysqlclient-dev
查看安裝的MySQL版本:
mysql --version
連接MySQL客戶端函數庫所需要的頭文件的存放位置:
mysql_config --cflags
連接MySQL客戶端函數庫所需要的庫文件的存放位置
mysql_config --libs
測試代碼如下:
//查詢操作
#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查詢出來的結果一樣。