1 需要安裝mysql客戶端

2 查看依賴
mysql_config --cflags --libs
安裝依賴:yum install mysql-devel
3 導入頭文件
#include <mysql.h>
4 相關代碼

1 #include <stdio.h> 2 #include <mysql.h> 3 4 #define HOST "localhost" 5 #define USERNAME "root" 6 #define PASSWORD "" 7 #define DATABASE "test" 8 9 void insert_sql(char * sql); 10 void query_sql(char* sql); 11 12 int main(int argc,char *argv[]) 13 { 14 //insert_sql("insert into test values('user','123456')"); 15 query_sql("select * from test"); 16 return 0; 17 } 18 19 void insert_sql(char * sql) 20 { 21 MYSQL conn; 22 int res; 23 mysql_init(&conn); 24 if(mysql_real_connect(&conn,"localhost","root","","test",0,NULL,CLIENT_FOUND_ROWS)) 25 { 26 printf("connect success!\n"); 27 res=mysql_query(&conn,sql); 28 if(res) 29 { 30 printf("error\n"); 31 } 32 else 33 { 34 printf("OK\n"); 35 } 36 mysql_close(&conn); 37 } 38 39 } 40 41 void query_sql(char* sql) 42 { 43 MYSQL my_connection; /*這是一個數據庫連接*/ 44 int res; /*執行sql語句后的返回標志*/ 45 MYSQL_RES *res_ptr; /*指向查詢結果的指針*/ 46 MYSQL_FIELD *field; /*字段結構指針*/ 47 MYSQL_ROW result_row; /*按行返回的查詢信息*/ 48 49 int row, column; /*查詢返回的行數和列數*/ 50 int i, j; /*只是控制循環的兩個變量*/ 51 52 /*初始化mysql連接my_connection*/ 53 mysql_init(&my_connection); 54 55 /*這里就是用了mysql.h里的一個函數,用我們之前定義的那些宏建立mysql連接,並 56 * 返回一個值,返回不為空證明連接是成功的*/ 57 if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) 58 { 59 /*連接成功*/ 60 printf("數據庫查詢query_sql連接成功!\n"); 61 /*這句話是設置查詢編碼為utf8,這樣支持中文*/ 62 mysql_query(&my_connection, "set names utf8"); 63 64 /*下面這句話就是用mysql_query函數來執行我們剛剛傳入的sql語句, 65 * 這會返回一個int值,如果為0,證明語句執行成功*/ 66 res = mysql_query(&my_connection, sql); 67 68 if (res) 69 { /*現在就代表執行失敗了*/ 70 printf("Error: mysql_query !\n"); 71 /*不要忘了關閉連接*/ 72 mysql_close(&my_connection); 73 } 74 else 75 { 76 /*現在就代表執行成功了*/ 77 /*將查詢的結果給res_ptr*/ 78 res_ptr = mysql_store_result(&my_connection); 79 80 /*如果結果不為空,就把結果print*/ 81 if (res_ptr) 82 { 83 /*取得結果的行數和*/ 84 column = mysql_num_fields(res_ptr); 85 row = mysql_num_rows(res_ptr) + 1; 86 printf("查詢到 %lu 行 \n", row); 87 88 /*輸出結果的字段名*/ 89 for (i = 0; field = mysql_fetch_field(res_ptr); i++) 90 printf("%s\t", field->name); 91 printf("\n"); 92 93 /*按行輸出結果*/ 94 for (i = 1; i < row; i++) 95 { 96 result_row = mysql_fetch_row(res_ptr); 97 for (j = 0; j < column; j++) 98 printf("%s\t", result_row[j]); 99 printf("\n"); 100 } 101 102 } 103 mysql_free_result(res_ptr); 104 /*不要忘了關閉連接*/ 105 mysql_close(&my_connection); 106 /*釋放資源*/ 107 mysql_library_end(); 108 } 109 } 110 }
5 編譯
g++ testmysql.cpp `mysql_config --cflags --libs` -o test
參考資料:
https://www.cnblogs.com/wunaozai/p/3618383.html
http://blog.csdn.net/fykhlp/article/details/5950485#