c++ - MySQL C++ 连接器始终输出相同的字符串

标签 c++ mysql mysql-connector

我正在尝试编写一个程序来从 MYSQL 表中输出一行,但它总是输出相同的内容... 该函数从另一个函数获取输入

C++

try {
    sql::Driver *driver;
    sql::Connection *con;
    sql::Statement *stmt;
    sql::ResultSet *res;

/* Create a connection */
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "TSA!");
/* Connect to the MySQL test database */
con->setSchema("main");

stmt = con->createStatement();
stmt->execute("CALL getData('" + quest1 +"', @ans)");
res = stmt->executeQuery("SELECT @ans AS _message");
while (res->next()) {
    cout << "Answer: ";
    /* Access column data by alias or column name */
    cout << res->getString("_message") << endl;
}
delete res;
delete stmt;
delete con;
}

然后是一个不是由该程序触发的错误语句。

MySQL

   CREATE DEFINER=`root`@`localhost` PROCEDURE `getData`(IN info MEDIUMTEXT,
OUT datas MEDIUMTEXT)
BEGIN
    SELECT `answer` from `approved` WHERE `Question` = info into datas;
END

表格: 问题|回答 测试|测试 测试2 |测试2

程序始终且仅输出“test” 我该如何解决这个问题?

最佳答案

我通过使用 cin.getline 而不是 cin 向字符串输入从用户处获取字符来修复此问题。

您可以使用 cin 清除现有缓冲区,我认为这是问题所在。

关于c++ - MySQL C++ 连接器始终输出相同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042088/

相关文章:

c++ - 无法在我的 C++ 代码中执行超过 1 行

php - 持续检查MySQL表更新的最佳方法是什么?

mysql - Python - Mac OSX 10.10 中的 MySQL 连接器错误

c++ - 有什么理由更喜欢 static_cast 而不是一系列隐式转换?

c++ - 混合数字类运算符重载 C++

c++ - 预编译 header 给出杂散的 216 错误

php - wget 完成下载文件后运行 MySQL 查询

mysql - 在 MySQL 中索引电子邮件地址的最有效方法是什么?

java - SELECT 上的 JDBC 连接器太慢

c# - 关闭 MySQL 连接在 .NET 应用程序中重要吗? (准确地说,C#)