mysql的變數型別和函式都包含在這個標頭檔案當中
然後,我們需要建立連線資料庫的變數,可以簡單地這麼做:
mysql *mysql;
在連線資料庫之前,我們要呼叫以下函式初始化這個變數:
mysql_init(mysql *mysql)
然後
mysql * stdcall mysql_real_connect(mysql *mysql,
const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned int clientflag);
該函式被呼叫連線到資料庫。host是mysql伺服器的主機名,user是登入的使用者名稱,passwd是登入密碼,db是要連線的資料庫,port是mysql伺服器的tcp/ip埠,unix_socket是連線型別,clientflag是mysql執行成odbc資料庫的標記。在這篇文章當中該標記設成0,連線尋建立後,這個函式返回0。
現在可以連線資料庫,進行查詢了:
char *query;
使用這個字串我們可以創立任何sql查詢語句進行查詢。執行這個查詢的函式是:
int stdcall mysql_real_query(mysql *mysql,
const char *q,
unsigned int length);
mysql是我們前面用過的變數,q是sql查詢語句,length是這個查詢語句的長度。如果查詢成功,函式返回0。
查詢之後,我們要到乙個mysql_res變數來使用查詢的結果。以下這行創立這個變數:
mysql_res *res;
然後
mysql_use_result(mysql *query)
該函式讀出查詢結果。
儘管可以很容易地查詢了,要用這個查詢的結果還要用到其它的函式。第乙個是:
mysql_row stdcall mysql_fetch_row(mysql_res *result);
該函式把結果轉換成「陣列」。你可能注意到了,該函式返回的是mysql_row變數型別。以下語句創立那樣的變數:
mysql_row row;
如前所解釋的,變數row是乙個字串陣列。也就是說,row[0]是陣列的第乙個值,row[1]是陣列的第二個值...當我們用mysql_fetch_row的時候,接著變數row會取得結果的下一組的資料。當到了結果的尾部,該函式返回一負值。最後我們要關閉這個連線:
mysql_close(mysql *mysql)
一些有用的函式
看看如何取得乙個**的字段,以下這個函式可能實現這個功能:
unsigned int stdcall mysql_num_fields(mysql *mysql);
這個函式返回**裡有多少個字段。
取得「資料集」的數目,用:
my_ulonglong stdcall mysql_num_rows(mysql_res *res);
my_ulonglong stdcall mysql_affected_rows(mysql *mysql);
這個函式是用來得到受insert, delete, update查詢語句影響的「資料集」數目。注意該函式返回的資料型別是my_ulonglong
BCB如何用MYDAC鏈結到資料庫
bcb如何用mydac鏈結到資料庫 但鏈結到資料庫後,可能會出現中文亂碼的情況 我網上查閱說可以修改 的方法來解決。但是用mydac鏈結的都沒怎麼使用 鏈結 就我個人所寫的來說 另乙個方法是修改資料夾中的乙個ini檔案。但是我沒有許可權修改。後來慢慢摸索找到了解決辦法。剛開始建立表的時候,姓名使用的...
C語言鏈結mysql資料庫
一 解釋一下函式功能和用法 1.mysql real connect 函式原型 mysql mysql real connect mysql mysql,const char host,const char user,const char passwd,const char db,unsigned ...
C語言鏈結mysql資料庫錯誤
一 編譯錯誤 eg 用gcc編譯出現如下的錯誤 test.c text 0x5e 對 mysql init 未定義的引用 但是在標頭檔案中已經 include 解決方法是 gcc xx.c lmysqlclient l usr lib64 mysql二 由 mysql config libs cfl...