讓我們示範一個與 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 從指令參數取得連線資料, 這我就不多說了。
習題