我正在尝试编写一个程序来从 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/