插入操作:
#include <stdio.h> #include <mysql.h> int main(int argc,char *argv[]) { MYSQL conn; int res; mysql_init(&conn);//初始化 串連 if(mysql_real_connect(&conn,"localhost","root","123","test",0,NULL,CLIENT_FOUND_ROWS)) {printf("資料庫連接成功/n");res = mysql_query(&conn,"insert into test values('user','123456')");//插入語句,成功返回0,失敗返回1if(res){printf("語句執行失敗/n");mysql_close(&conn);//記得關閉串連}else{printf("語句執行成功/n");mysql_close(&conn);} } return 0; }查詢操作:
void query_sql(char* sql) { MYSQL my_connection; /*這是一個資料庫連接*/ int res; /*執行sql語句後的返回標誌*/ MYSQL_RES *res_ptr; /*指向查詢結果的指標*/ MYSQL_FIELD *field; /*欄位結構指標*/ MYSQL_ROW result_row; /*按行返回的查詢資訊*/ int row, column; /*查詢返回的行數和列數*/ int i, j; /*只是控制迴圈的兩個變數*/ /*初始化mysql串連my_connection*/ mysql_init(&my_connection); /*這裡就是用了mysql.h裡的一個函數,用我們之前定義的那些宏建立mysql串連,並 返回一個值,返回不為空白證明串連是成功的*/ if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*串連成功*/ printf("資料庫查詢query_sql串連成功!n"); /*這句話是設定查詢編碼為utf8,這樣支援中文*/ mysql_query(&my_connection, "set names utf8"); /*下面這句話就是用mysql_query函數來執行我們剛剛傳入的sql語句, 這會返回一個int值,如果為0,證明語句執行成功*/ res = mysql_query(&my_connection, sql); if (res) { /*現在就代表執行失敗了*/ printf("Error: mysql_query !n"); /*不要忘了關閉串連*/ mysql_close(&my_connection); }else { /*現在就代表執行成功了*/ /*將查詢的結果給res_ptr*/ res_ptr = mysql_store_result(&my_connection); /*如果結果不為空白,就把結果print*/ if (res_ptr) { /*取得結果的行數和*/ column = mysql_num_fields(res_ptr); row = mysql_num_rows(res_ptr) + 1; printf("查詢到 %lu 行 n", row); /*輸出結果的欄位名*/ for (i = 0; field = mysql_fetch_field(res_ptr); i++) printf("%st", field->name); printf("n"); /*按行輸出結果*/ for (i = 1; i < row; i++){ result_row = mysql_fetch_row(res_ptr); for (j = 0; j < column; j++) printf("%st", result_row[j]); printf("n"); } } /*不要忘了關閉串連*/ mysql_close(&my_connection); } }}
編譯:gcc -o test_mysql test_mysql.c `mysql_config --cflags --libs`
插入 刪除 更新操作返回一個整形數值,以判斷成功與否。查詢返回的更複雜。