请选择 进入手机版 | 继续访问电脑版
查看: 479|回复: 0

[软件工程] c++连接mysql类

686

主题

686

帖子

2071

积分

猿er

Rank: 1

积分
2071
发表于 2016-8-14 17:53:46
在这之前,你要安装mysql开发库 yum install mysql-devel-x86-64
调用这个类 直接返回json数据 只需要三步:
Mysql my;
my.conut();
string cc=my.query("select * from user");
my.close();
  1. #include <cstdlib>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5. #include <string.h>
  6. #include <time.h>
  7. #include <sstream>
  8. #include <unistd.h>
  9. #include "mysql/include/mysql.h"
  10. using namespace std;
  11. class Mysql{
  12. private:
  13. MYSQL *conn;
  14. MYSQL_RES *res;
  15. MYSQL_ROW row;
  16. char *server = "xxxx";
  17. char *user = "xxxx";
  18. char *password = "xxxx"; /* 此处改成你的密码 */
  19. char *database = "xxxx";
  20. public:
  21. void conut();
  22. string query(char *txt);
  23. void close();
  24. };
复制代码
  1. #include "cmysql.h"
  2. void Mysql::conut(){
  3. conn = mysql_init(NULL);
  4. /* Connect to database */
  5. if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0)) {
  6. fprintf(stderr, "%s\n", mysql_error(conn));
  7. /* send SQL query */
  8. }
  9. }
  10. string Mysql::query(char *txt){
  11. mysql_query(conn, "SET NAMES utf8");
  12. mysql_query(conn, txt);
  13. res = mysql_use_result(conn);
  14. if(res<=0){
  15. stringstream code;
  16. code<<res;
  17. return code.str();
  18. }
  19. int k=0;
  20. string all;
  21. MYSQL_FIELD *field;
  22. field = mysql_fetch_fields(res);
  23. all+="[";
  24. while ((row = mysql_fetch_row(res)) != NULL){
  25. if(k!=0){
  26. all+=",";
  27. }
  28. all+="{";
  29. for(int i=0; i < res->field_count; i++){
  30. stringstream ss;
  31. ss<<field[i].name;
  32. all+='"'+ss.str()+'"'+":"+'"';
  33. if(row[i]==NULL){
  34. all+="null";
  35. }else{
  36. all+=row[i];
  37. }
  38. all+='"';
  39. if(i < res->field_count-1){
  40. all+=',';
  41. }
  42. }
  43. all+="}";
  44. k=2;
  45. }
  46. all+="]";
  47. return all;
  48. }
  49. void Mysql::close(){
  50. /* close connection */
  51. mysql_free_result(res);
  52. mysql_close(conn);
  53. }
复制代码
  1. #include <cmysql.h>
  2. main(){
  3. Mysql my;
  4. my.conut();
  5. string cc=my.query("select * from user");
  6. my.close();
  7. }
复制代码


回复

使用道具 举报