Мне нужно найти в моей таблице 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