C ++ Mysql Connector подготовил оператор с возвращаемыми значениями - PullRequest
0 голосов
/ 14 марта 2019

Мне нужно найти в моей таблице mysql заданную пользователем строку в моем приложении C ++.Это означает, что я должен использовать подготовленные операторы для предотвращения SQL-инъекций.У меня проблема в том, что я не могу найти учебники, которые помогли бы мне использовать подготовленные операторы с возвращаемыми значениями.Т.е.:

"Select id from db where name = ?".

Как получить совпадающие значения?

Я нашел этот пример кода здесь на SO, но он не работает:

// use std::unique_ptr, boost::shared_ptr, or whatever is most appropriate for RAII
// Connector/C++ requires boost, so 
std::unique_ptr<sql::Connection> db;
std::unique_ptr<sql::PreparedStatement> getPassword
std::unique_ptr<sql::ResultSet> result;
std::string name = "Nikolai Gogol";
std::string password;

...

getPassword = db->prepareStatement("SELECT pass FROM users WHERE name=? LIMIT 1");

getPassword->setString(1, name);
result = getPassword->execute();
if (result->first()) {
password = result->getString("pass");
} else {
// no result
...
}

// smart pointers will handle deleting the sql::* instances
...