具有返回值的C ++ Mysql Connector准备的语句

时间:2019-03-14 06:47:26

标签: c++ mysql select prepared-statement connector

我需要在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

0 个答案:

没有答案