【问题标题】:C++ variable mysql_query to databaseC ++变量mysql_query到数据库
【发布时间】:2020-05-26 05:30:44
【问题描述】:

我的目标是将数据从 C++ 代码发送到 mariaDB。我正在为编译而苦苦挣扎。如果你能帮助我如何将浮点数发送到数据库中,我会很高兴。 :)

float pi=3.14; 
     if (mysql_query(conn, "INSERT INTO meranie VALUES ('%f')",pi) != 0)
  {
    fprintf(stderr, "Query Failure\n");
    return EXIT_FAILURE;
  }

【问题讨论】:

  • 忘记数据库。这并不重要。你只是给它一个字符串。因此,首先,研究如何从可变数据构建字符串。那么您可能会发现已经提供的答案。
  • 如果mysql_query 支持可变参数来执行此操作,MySQL API 将是相关的,但事实并非如此。虽然我们可以将您指向准备好的查询,它们基​​本上可以正确地做到这一点......
  • 两个对比鲜明的cmets;选一个????
  • 什么是编译错误,指的是哪一行,你试过什么?

标签: c++ mysql mariadb


【解决方案1】:

你可以试试(C++):

float pi=3.14;
std::string insert = "INSERT INTO meranie VALUES ("+std::to_string(pi)+")";
if (mysql_query(conn, insert.c_str()) != 0){
    fprintf(stderr, "Query Failure\n");
    return EXIT_FAILURE;
}

如果你只想使用 C,你可以试试 sprintf。

【讨论】:

  • 欢迎来到 StackOverflow!请不要假设每个人都是using namespace std;,因为很多人都是considered bad practice。就个人而言,我觉得你的代码很难阅读,因为没有std:: 前缀,我必须总是问自己你是指MySQL API 的函数还是std 命名空间。您可能想要编辑您的答案并添加 std:: 前缀或至少添加行 using namespace std; 以明确发生了什么。无论如何我都赞成你的回答。
  • 谢谢。我没有使用 std:: 来提高速度,我忘了提及 using namespace std;。我是 C++ 的初学者。我的主要专业是Java,非常感谢您的指正。
猜你喜欢
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 2014-01-31
  • 2021-12-05
相关资源
最近更新 更多