createTable( 'pengumuman', [ 'id int(3) NOT NULL AUTO_INCREMENT', 'category int(3) NOT NULL', 'created_at timestamp DEFAULT CURRENT_TIMESTAMP', 'expired_at timestamp NOT NULL', 'creator int(3) NOT NULL', 'edited_at timestamp', 'editor timestamp', 'content varchar(255) NOT NULL', 'PRIMARY KEY (id)' ] ); } public function showAll() { try { $db = static::connectDB(); $sql = "SELECT * FROM pengumuman ORDER BY created_at"; if ($stmt = $db->query($sql)) { $result = $stmt->fetchAll(\PDO::FETCH_ASSOC); return true; } return false; } catch (PDOException $e) { echo $e->getMessage(); } } public function showSingle($id) { try { $db = static::connectDB(); $sql = "SELECT * FROM pengumuman WHERE id = ?"; $query = $db->prepare($sql); if ($query->execute([$id])) { if ($query->rowCount() === 1) { $result = $query->fetchAll(\PDO::FETCH_ASSOC); // For tests return true; } } return false; } catch (PDOException $e) { echo $e->getMessage(); } } public function entry($fields, $vals) { if (count($fields) && count($vals) && count($fields) === count($vals)) { $keys = '`'.implode('`, `', $fields).'`'; $x = 1; $values = ''; foreach ($vals as $val) { $values .= '?'; if ($x < count($vals)) { $values .= ', '; } $x++; } try { $db = static::connectDB(); $sql = "INSERT INTO pengumuman ({$keys}) VALUES ({$values})"; $query = $db->prepare($sql); $x = 1; foreach ($vals as $val) { $query->bindValue($x, urldecode($val)); $x++; } if ($query->execute()) { return true; } return false; } catch (PDOException $e) { echo $e->getMessage(); } } } public function update($args, $id) { if (count($args)) { $keys = array_keys($args); $fields = []; foreach ($keys as $key) { $fields[] = $key.' = ?'; } try { $db = static::connectDB(); $sql = "UPDATE pengumuman SET ".implode(', ', $fields)." WHERE id = ?"; $query = $db->prepare($sql); $x = 1; foreach ($args as $value) { $query->bindValue($x, $value); $x++; } $query->bindValue($x, $id); if ($query->execute()) { return true; } return false; } catch (PDOException $e) { echo $e->getMessage(); } } } public function delete($id) { try { $db = static::connectDB(); $sql = "DELETE FROM pengumuman WHERE id = ?"; $query = $db->prepare($sql); if ($query->execute([$id])) { return true; } return false; } catch (PDOException $e) { echo $e->getMessage(); } } }