mySQL query in C++
mySQL query in C++
在以下通过SQL查询从数据库检索数据的代码中,是否有一种方法可以将row[0]替换为fieldname。我只包含了代码
的相关部分MYSQL_RES *resptr;
MYSQL_ROW row;
while ( ( row = mysql_fetch_row(resptr)) != NULL )
{
for (int i=0;i<8;i++)
string key = row[0];
}
row[0]是trans_date列。代码现在工作得很好,但是是否有一种方法可以通过使用字段名来分配键,而不是必须记住所有字段号。谢谢!
可以通过执行
来检索字段名field = mysql_fetch_field(resptr);
std::cout << field->name;
(使用while循环遍历所有字段)
但是你不能调用row[fieldName]
。您可以定义变量来映射列名和数字
int id = 0;
int trans_date = 1;
// Code happening here
std::cout << row[id] << " " << row[trans_date];
UPDATE:你总是可以这样做(使用STL的map):
map<string, int> columns;
int i = 0;
while(field = mysql_fetch_field(resptr)){
columns.insert(pair<string,int>(field->name, i++));
}
然后使用row[columns["name"]];
MySQL++解决了这个问题。你可以这样说:
string key = row["key"];
或使用它的ssql特性,这:
MyTableStructure foo = result[i];
cout << "The key is " << foo.key << endl;
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp