Files
phpvault/src/Database.php
2024-09-24 13:27:33 -05:00

55 lines
1.4 KiB
PHP

<?php
namespace Hpz937\Phpvault;
use SQLite3;
class Database {
private $db;
public function __construct() {
$this->db = new SQLite3(__DIR__ . '/../database/db.sqlite');
if (!$this->db) {
echo 'Unable to connect to database';
exit;
}
}
public function query($query) {
return $this->db->query($query);
}
public function createTables() {
$queries = [
'CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL
)',
'CREATE TABLE IF NOT EXISTS vault (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL,
vaultname TEXT NOT NULL,
encrypted_data TEXT NOT NULL
)',
'CREATE INDEX IF NOT EXISTS username_idx ON users (username)',
'CREATE UNIQUE INDEX IF NOT EXISTS vault_unique_idx ON vault (username, vaultname);',
];
foreach ($queries as $query) {
if (!$this->db->exec($query)) {
echo 'Error creating tables: ' . $this->db->lastErrorMsg();
exit;
}
}
}
public function getDb() {
return $this->db;
}
public function close() {
$this->db->close();
}
}