Database PDO class
<?php // THE DATABASE CLASS
class Database {
private static $dsn = 'mysql:host=localhost;dbname=my_dbname';
private static $username = 'mgs_user';
private static $password = 'pa55word';
private static $db;
private function __construct() {}
public static function getDB () {
if (!isset(self::$db)) {
try {
self::$db = new PDO(self::$dsn, self::$username, self::$password);
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('../errors/database_error.php');
exit();
}
}
return self::$db;
}
}
?>
<?php // THE CATEGORY DATABASE CLASS, get categories and get category
class CategoryDB {
public static function getCategories() {
$db = Database::getDB();
$query = 'SELECT * FROM categories
ORDER BY categoryID';
$statement = $db->prepare($query);
$statement->execute();
$categories = array();
foreach ($statement as $row) {
$category = new Category($row['categoryID'], $row['categoryName']);
$categories[] = $category;
}
return $categories;
}
public static function getCategory($category_id) {
$db = Database::getDB();
$query = 'SELECT * FROM categories
WHERE categoryID = :category_id';
$statement = $db->prepare($query);
$statement->bindValue(':category_id', $category_id);
$statement->execute();
$row = $statement->fetch();
$statement->closeCursor();
$category = new Category($row['categoryID'], $row['categoryName']);
return $category;
}
}
?>
<?php // THE CATEGORY CLASS
class Category {
private $id;
private $name;
public function __construct($id, $name) {
$this->id = $id;
$this->name = $name;
}
public function getID() {
return $this->id;
}
public function setID($value) {
$this->id = $value;
}
public function getName() {
return $this->name;
}
public function setName($value) {
$this->name = $value;
}
}
?>