Я делаю проект и работаю с SQLite 3 для создания базы данных.Я пытаюсь проверить, существует ли пользователь, чтобы сделать запрос на вход, но почему-то это не работает (таблица пользователей уже создана).когда я использую exec, он не попадает в функцию обратного вызова, и я получаю результат 21, который, по-видимому, является ошибкой из-за вызова, но я не могу понять, как это исправить.
//this is the callback function
int loginCallBack(void* var, int count, char** data, char** columns)
{
int lol = 0;
std::cout << count;
if (count > 0)
{
for (int i = 0; i < count; i++) {
printf("%s = %s\n", columns[i], data[i] ? data[i] : "NULL");
}
*(bool *) var = true;
}
else
{
*(bool *) var = false;
}
return 0;
}
int LoginManager::login(std::string username, std::string password)
{
std::string sqlStatement = "SELECT * FROM users WHERE username = " + username+ " AND password = "+ password + ";";
bool* ifLoginSucceded = new bool;
int res = sqlite3_exec(m_database.db, sqlStatement.c_str(), loginCallBack, ifLoginSucceded, nullptr);
std::cout << res;
if (*(ifLoginSucceded))
{
m_loggedUsers.push_back(LoggedUser(username));
return 1;
}
else
{
return 0;
}
}
когдая запущен, последняя строка sqlstatement выглядит следующим образом: SELECT * FROM users WHERE username = "username" И пароль = "password";
Я также пытался запустить это с sqlstatement: SELECT * FROM users;который также не работает, и я получаю результат 21
спасибо за помощь