MySQL连接器PreparedStatement-> setString无法正常工作C ++

时间:2018-04-30 16:34:20

标签: c++ string mysql-connector

因此,基本上所有这些代码都是在数据库中搜索具有特定用户名和密码的用户,如果找不到,则返回nullptr。

    Gebruiker* Gebruiker_DAO::getGebruiker(string login, string wachtwoord)
{

    PreparedStatement *prep_stmt = nullptr;
    ResultSet *res = nullptr;
    Gebruiker* gebruiker = nullptr;
    int rowcount = 0;

    try {
        prep_stmt = dbConn->getConnection()->prepareStatement("SELECT * FROM Gebruiker WHERE Gebruiker_login = ? AND Gebruiker_wachtwoord = ?");

        prep_stmt->setString(1, login);
        prep_stmt->setString(2, wachtwoord);

        res = prep_stmt->executeQuery();
        while (res->next()) {
            gebruiker = new Gebruiker(login, res->getBoolean("Gebruiker_isAdmin"), res->getString("Bedrijf"),res->getBoolean("Gebruiker_isActief"),res->getInt("Werknemer_ID"));
        }
    }
    catch(SQLException& e) {
        console.log(e.what(), console.Error);
        return nullptr;
    }

    return gebruiker;
}

问题是setString在内存位置抛出“std :: bad_alloc ......” 我之前注意到,尝试在SQLString中放入一个字符串也会引发错误。到目前为止,我已经在SQLStrings中使用了一些解决方法。

SQLString schema = "groep003B";
    dbConn->getInstance()->setSchema(schema);
    dbConn->getInstance()->connect();

出于某种奇怪的原因,这可以起作用......

我有什么问题吗?我见过人们使用字符串的例子,但由于某种原因,这对我不起作用......每当我尝试将变量std :: string放在SQLString中时,就会出现内存问题。

0 个答案:

没有答案