MySQL C ++ Connector始终输出相同的字符串

时间:2016-12-08 14:42:28

标签: 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

表格: 问题|回答 测试|测试 test2 | TEST2

程序始终只输出“测试” 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我通过从用户获取char来使用cin.getline而不是cin来输入字符串来修复它。

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