-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabaseManager.cpp
More file actions
37 lines (32 loc) · 1.22 KB
/
DatabaseManager.cpp
File metadata and controls
37 lines (32 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "DatabaseManager.h"
#include <QSqlError>
DatabaseManager::DatabaseManager(QObject *parent) : QObject(parent) {}
void DatabaseManager::initDatabase(const QString &dbPath)
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbPath);
if (!db.open()) qDebug() << "Cannot open database:" << db.lastError().text();
QSqlQuery query;
query.exec("CREATE TABLE IF NOT EXISTS users (username TEXT PRIMARY KEY, password TEXT)");
}
bool DatabaseManager::createUser(const QString &username, const QString &password)
{
QSqlQuery query;
query.prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
query.bindValue(":username", username);
query.bindValue(":password", password);
if (!query.exec()) {
qDebug() << "Create user failed:" << query.lastError().text();
return false;
}
return true;
}
bool DatabaseManager::validateUser(const QString &username, const QString &password)
{
QSqlQuery query;
query.prepare("SELECT * FROM users WHERE username = :username AND password = :password");
query.bindValue(":username", username);
query.bindValue(":password", password);
if (!query.exec()) return false;
return query.next();
}