setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } return self::$conn; } catch (PDOException $e) { throw new \Exception($e->getMessage, 444); } } public static function fetch($table, $conditions = []) { $sql = "SELECT * FROM {$table}"; if ($conditions) { $sql .= " WHERE"; foreach ($conditions as $condition) { $keys[] = $condition[0]; $operators[] = $condition[1]; $values[] = $condition[2]; } $x = 0; foreach ($keys as $key) { $sql .= " $key $operators[$x] ?"; $x++; if ($x < count($keys)) { $sql .= " AND"; } } } try { $con = static::connectDB(); $query = $con->prepare($sql); if (count($conditions)) { $x = 1; foreach ($values as $value) { $query->bindValue($x, $value); $x++; } } $query->execute(); return $query->fetch(\PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } public static function showAll($table, $conditions = []) { $sql = "SELECT * FROM {$table}"; if ($conditions) { $sql .= " WHERE"; foreach ($conditions as $condition) { $keys[] = $condition[0]; $operators[] = $condition[1]; $values[] = $condition[2]; } $x = 0; foreach ($keys as $key) { $sql .= " $key $operators[$x] ?"; $x++; if ($x < count($keys)) { $sql .= " AND"; } } } try { $con = static::connectDB(); $query = $con->prepare($sql); if (count($conditions)) { $x = 1; foreach ($values as $value) { $query->bindValue($x, $value); $x++; } } $query->execute(); return $query->fetchAll(\PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } public static function update($table, $args) { $sql = "UPDATE {$table} SET"; $id = $args['id']; unset($args['id']); $keys = array_keys($args); $fields = []; foreach ($keys as $key) { $fields[] = $key . " = ?"; } if (count($fields) > 1) { $fields = implode(', ', $fields); } else { $fields = implode('', $fields); } try { $con = static::connectDB(); $sql .= " {$fields} WHERE id = ?"; $query = $con->prepare($sql); $x = 1; foreach ($args as $value) { $query->bindValue($x, $value); $x++; } $query->bindValue($x, $id); $query->execute(); return self::showAll($table, [ ['id', '=', $id] ]); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } public static function entry($table, $args) { $sql = "INSERT INTO {$table}"; $fields = array_keys($args); $fields = implode(", ", $fields); $values = ""; for ($i=1; $i <= count($args); $i++) { $values .= "?"; if ($i < count($args)) $values .= ", "; } $sql .= " ({$fields}) VALUES ({$values})"; try { $con = static::connectDB(); $query = $con->prepare($sql); $x = 1; foreach ($args as $value) { $query->bindValue($x, $value); $x++; } $query->execute(); $last_entry = "SELECT LAST_INSERT_ID()"; $last_entry = $con->prepare($last_entry); $last_entry->execute(); return $last_entry->fetch(); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } public static function remove($table, $id) { $sql = "UPDATE {$table} SET `status` = 0 WHERE `id` = ?"; try { $con = static::connectDB(); $query = $con->prepare($sql); $query->bindValue(1, $id); $query->execute(); return self::showAll($table, [ ['id', '=', $id] ]); } catch (PDOException $e) { echo "Error: $e->getMessage()"; } } }