From 6c0a6bc500a5c7d0ee05a5fa925aa79951edd655 Mon Sep 17 00:00:00 2001 From: dusk Date: Fri, 10 Dec 2021 23:53:41 +0100 Subject: [PATCH] Get Messages --- persistence.php | 59 +++++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/persistence.php b/persistence.php index 9a3f8b1..b30e309 100644 --- a/persistence.php +++ b/persistence.php @@ -1,48 +1,59 @@ 1]); +var_dump($test); + +function createDB($db_name = 'guestbook.db'): SQLite3 { + // Can't create table if it already exists + $exists = file_exists($db_name); + + $db = new SQLite3($db_name); + + if(!$exists) { + $db->exec('CREATE TABLE user + (id_user INTEGER PRIMARY KEY, + username TEXT NOT NULL UNIQUE, + password TEXT)' + ); + $db->exec('CREATE TABLE message + (id_msg INTEGER PRIMARY KEY, + id_user INT, + content TEXT NOT NULL, + date INT, + FOREIGN KEY (id_user) REFERENCES user (id_user))' + ); + } -function createDB(): SQLite3 { - $db = new SQLite3('guestbook.db'); - $db->exec('CREATE TABLE user - (id_user INTEGER PRIMARY KEY, - username TEXT NOT NULL UNIQUE, - password TEXT)' - ); - $db->exec('CREATE TABLE message - (id_msg INTEGER PRIMARY KEY, - id_user INT, - content TEXT NOT NULL, - date INT, - FOREIGN KEY (id_user) REFERENCES user (id_user))' - ); return $db; } -// getMessages(['id' => 34, 'since' => 383489289424]) - -function getMessages(SQLite3 $db, int $limit = 25, array $filter = []) { +function getMessages(SQLite3 $db, array $filter = [], int $limit = 25) { // Apply filters $append_string = ''; $verb = 'WHERE'; - foreach ($filter as $key => $value) { + foreach($filter as $key => $value) { $to_append = match($key) { - 'id_msg' => "$verb $key IN (:$key)", + 'id_user' => "$verb $key = :$key", // TODO }; - if ($to_append) { + if($to_append) { $append_string .= " $to_append"; $verb = 'AND'; } } + // Prepare statement $query = 'SELECT * FROM message' . $append_string; + var_dump($query); + $statement = $db->prepare($query); - foreach ($filter as $key => $value) { - $statement->bindValue($key, $value); + foreach($filter as $key => $value) { + $statement->bindParam($key, $value); } - return $statement->execute(); + var_dump($statement); + return $statement->execute()->fetchArray(SQLITE3_ASSOC); }