|
|
MySQL 教材:C API 開啟資料庫 |
讓我們示範一個與 MySQL 連線,並且開啟一個資料庫的 C 原始碼。 稱此函式為 opendb.c,假設我們的連線資料如下:
#include <stdio.h>
#include <mysql.h>
#define MyHOST "host.domain.name"
#define MyNAME "user"
#define MyDB "testdb"
extern MYSQL *dp;
int opendb(void) {
char pass[9];
pass[0] = 'a';
pass[1] = 'b';
pass[2] = 'c';
pass[3] = 'd';
pass[4] = '1';
pass[5] = '2';
pass[6] = '3';
pass[7] = '4';
pass[8] = '\0';
dp = mysql_init(NULL);
if (dp == NULL) {
fprintf(stderr, "mysql_init() failed\n");
return 2;
}
mysql_real_connect(dp, MyHOST, MyNAME, pass, MyDB, 0, NULL, 0);
if (dp == NULL) {
fprintf(stderr, "mysql_real_connect() failed\n");
return 3;
}
if (mysql_select_db(dp, MyDB) != 0) {
fprintf(stderr, "mysql_select_db() failed\n");
mysql_close(dp);
return 4;
}
return 0;
}gcc -c -I/usr/include/mysql opendb.c只要修改 MyHOST, MyNAME, MyDB 和 pass 的值,重新編譯, 這個函式就可以幫您與 MySQL 連線,開啟所要求的資料庫,或者輸出簡單的錯誤訊息、 返回錯誤編號:
以下,我們簡單說明上面那個程式的設計。
最後要提醒您,因為連線 MySQL 的通行碼寫在這個 C 原始碼裡面, 所以這個檔案當然要小心保管。 即使在編譯之後,把這個檔案內的 pass 定義部份擦掉也可以。 一般來說,這個檔案不會經常需要修改。 當然,您也可以改寫這個程式,利用 argv[] 使得 C 從指令參數取得連線資料, 這我就不多說了。
習題