2016-12-08 2 views
0

Я пытаюсь написать программу для вывода строки из таблицы MYSQL и он всегда выдает то же самое ... Функция принимает входной сигнал от другой функцииMySQL C++ всегда выводит ту же самую строку

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 

Стол: вопрос | ответ тест | test test2 | test2

Программа всегда и только выдает «тест» Как это исправить?

+0

вывести: 'cout << quest1;', а также проверить, какой параметр вы отправляете. – Alex

ответ

0

Я исправил его, получив символ от пользователя для ввода с использованием cin.getline, а не cin в строку.

Вы можете очистить существующий буфер cin, который, я считаю, был проблемой.

Смежные вопросы