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#