Простой класс для работы с базой данных
class DB {
private static $instance;
private $MySQLi;
private function __construct(array $dbOptions){
$this->MySQLi = @ new mysqli($dbOptions['db_host'],$dbOptions['db_user'], $dbOptions['db_pass'],$dbOptions['db_name'] );
if (mysqli_connect_errno()) {
throw new Exception('Ошибка базы данных.');
}
$this->MySQLi->set_charset("utf8");
}
public static function init(array $dbOptions){
if(self::$instance instanceof self){
return false;
}
self::$instance = new self($dbOptions);
}
public static function getMySQLiObject(){
return self::$instance->MySQLi;
}
public static function query($q){
return self::$instance->MySQLi->query($q);
}
public static function esc($str){
return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
}
public static function insert_id($str){
return self::$instance->MySQLi->insert_id;
}
public static function affected_rows(){
return self::$instance->MySQLi->affected_rows;
}
}
Пример работы с классом
<?php
/* Конфигурация базы данных. Добавьте свои данные */
$dbOptions = array(
'db_host' => 'localhost',
'db_user' => '',
'db_pass' => '',
'db_name' => ''
);
//Имя таблицы, в которой хранятся заметки
$table_name = 'articles';
//Подключаем класс для работы с базой данных
require "db.class.php";
// Соединение с базой данных
DB::init($dbOptions);
$page_id = (!empty($_GET['id']))? intval($_GET['id']): false;
if(!$page_id){
//Выбираем 3 заметки из базы данных
$result = DB::query('SELECT * FROM '.$table_name.' LIMIT 3');
//Здесь будет храниться список заметок
$articles = array();
while($row = $result->fetch_assoc()){
$articles[] = $row;
}
}
else{
//Выбираем заметку из базы данных по переданному id
$result = DB::query('SELECT * FROM '.$table_name.' WHERE id='.$page_id.' LIMIT 1');
//Если такой заметки нет в базе данных
//выводим 404 ошибку
if(!$post = $result->fetch_assoc()){
header("HTTP/1.0 404 Not Found");
header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");
die('Нет такой заметки');
}
}
?>
Комментариев нет:
Отправить комментарий