c++读取mysql数据库结果保存
#include <fstream>
#include <iomanip>
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <sstream>
#include <mysql/mysql.h>
#include <stdlib.h> using namespace std; //数据库地址密码
string g_Server = "localhost";
string g_User = "root";
string g_Password = "";
string g_Database = "test";
//vector 输出
void printVevtorVal(vector <string> strVal)
{
vector<string>::iterator itr = strVal.begin();
for(itr;itr!=strVal.end();itr++)
{
cout << (*itr) << " ";
}
cout << endl;
} //vector二维表 输出
void printTableVal(vector <vector <string> > strVal)
{
vector <vector <string> >::iterator itr = strVal.begin();
for(itr;itr!=strVal.end();itr++)
{
vector<string>::iterator tmp = (*itr).begin();
for(tmp;tmp!=(*itr).end();tmp++)
{
cout << setw() << left << (*tmp);
}
cout << endl;
} } //查询数据库结果只有一个值
string getStrValSql(string strSql)
{
string strvals = "";
MYSQL *conn;
MYSQL_RES *res;
conn = mysql_init(NULL); if (!mysql_real_connect(conn, g_Server.c_str(),g_User.c_str(), g_Password.c_str(), g_Database.c_str(),, NULL, ))
{
return "";
}
mysql_query(conn, strSql.c_str()); //执行sql语句
res = mysql_store_result(conn); //将查询结果装进MYSQL_RES
if(!res) //sql执行结果判断
{
return "";
}
int rows = mysql_num_rows(res); //获取结果行数
while(rows--)
{
MYSQL_ROW row = mysql_fetch_row(res); //从结果集中获取一行
strvals = (row[] == NULL ? "":row[]);
}
mysql_free_result(res); //查询完后记得要释放
mysql_close(conn); return strvals;
}
//数据库查询只有一行或者一列,返回vector
void getVecValSql(string strSql, vector<string> &vecVals)
{
MYSQL *conn;
MYSQL_RES *res;
conn = mysql_init(NULL); if (!mysql_real_connect(conn, g_Server.c_str(),g_User.c_str(), g_Password.c_str(), g_Database.c_str(),, NULL, ))
{
return ;
}
mysql_query(conn, strSql.c_str());
res = mysql_store_result(conn);
if(!res)
{
return ;
}
int rows = mysql_num_rows(res); if( rows == )
{
int cols = mysql_num_fields(res);
int intTmp = ;
MYSQL_ROW row = mysql_fetch_row(res);
while(intTmp < cols)
{
vecVals.push_back(row[intTmp] == NULL ? "":row[intTmp]);
intTmp++;
}
}
else
{
while(rows--)
{
MYSQL_ROW row = mysql_fetch_row(res);
vecVals.push_back(row[] == NULL ? "":row[]);
}
}
mysql_free_result(res);
mysql_close(conn);
} //数据库查询返回二维表
void getTableValSql(string strSql,vector <vector <string> > &vecVals)
{
MYSQL *conn;
MYSQL_RES *res;
conn = mysql_init(NULL); if (!mysql_real_connect(conn, g_Server.c_str(),g_User.c_str(), g_Password.c_str(), g_Database.c_str(),, NULL, ))
{
return ;
}
mysql_query(conn, strSql.c_str());
res = mysql_store_result(conn);
if(!res)
{
return ;
}
int rows = mysql_num_rows(res);
int cols = mysql_num_fields(res);
while(rows--)
{
int intTmp = ;
vector <string> tmp; MYSQL_ROW row = mysql_fetch_row(res);
while(intTmp < cols)
{
tmp.push_back(row[intTmp] == NULL ? "":row[intTmp]);
intTmp++;
}
vecVals.push_back(tmp);
} mysql_free_result(res);
mysql_close(conn);
}

最新文章

  1. Swift - 轮播图
  2. MySQL的insert语句的区别
  3. css小技巧,会不断更新的
  4. NSString学习
  5. ab测试出现error: connection reset by peer的解决方案
  6. JAVA中分为基本数据类型及引用数据类型
  7. [ZT] Vim快捷键分类
  8. Beyond MySQL --Branching the popular database--转载
  9. Models and the ServiceManager
  10. git-svn 的使用
  11. 深入浅出 JSTL
  12. MSSql跨数据库查询
  13. 通用Key-Value存储系统的存储管理策略解析
  14. shell执行php文件传递参数
  15. ML.NET 示例:回归之价格预测
  16. java 从一个工程action 跳转到另外一个工程action
  17. IntelliJ IDEA 中创建maven项目
  18. Spark函数式编程进阶
  19. android-------- socket 实现客户端与服务器端通信
  20. vue 相对路径的图片 不显示问题

热门文章

  1. JAVA 对守护线程的理解
  2. 记一次kubernetes驱逐踩坑
  3. git报错:fatal: No configured push destination.
  4. form中label标签对齐,内容右对齐
  5. Deepin下将Caps映射为Control_L键
  6. .net 微服务实践
  7. codewars--js--Two Joggers--求最小公倍数、最大公约数
  8. C# 制作关键字醒目显示控件
  9. Maven 多模块开发
  10. PWN之Canary学习