// Подключение к БД
$connect = new PDO(
// Хост, имя базы, кодировка
'mysql:host=' . $sys['db']['db_host'] . ';dbname=' . $sys['db']['db_name'] . ';charset=utf8',
// Юзер
$sys['db']['db_user'],
// Пароль
$sys['db']['db_pass'],
// Атрибуты
[
/*
// Сообщения об ошибках
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
*/
// Выборка данных по умолчанию
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
// Буферизованные запросы
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
// Эмуляция подготавливаемых запросов
PDO::ATTR_EMULATE_PREPARES => true
]
);
. А мне нужно сделать под этот шаблон <?php
/*
-------------------------------
Класс для работы с базой данных
-------------------------------
*/
CLASS DB
{
//Объект PDO
PUBLIC STATIC $DB = NULL;
PUBLIC STATIC $ST = NULL;
//SQL запрос
PUBLIC STATIC $QUERY = '';
/*
--------------------------------------
Подключение драйвера PDO к базе данных
--------------------------------------
*/
PUBLIC STATIC FUNCTION CONNECT($status = 1)
{
IF (!SELF::$DB) {
TRY {
SELF::$DB = NEW PDO(
// Хост, имя базы, кодировка
'mysql:host=' . $sys['db']['db_host'] . ';dbname=' . $sys['db']['db_name'] . ';charset=utf8',
// Юзер
$sys['db']['db_user'],
// Пароль
$sys['db']['db_pass'],
ARRAY(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")
);
SELF::$DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} CATCH (PDOException $e) {
IF ($status == 1){
ECHO "Нет подключения к базе данных<br /><br />";
ECHO "Параметры ошибки:<br /> " . $e->getMessage();
ECHO "<hr>";
}
}
}
RETURN SELF::$DB;
}
/*
--------------------------------------
Получение 1 строки из таблицы
--------------------------------------
*/
PUBLIC STATIC FUNCTION GET_STRING($query, $param = ARRAY())
{
IF (SELF::CONNECT(0)){
SELF::$ST = SELF::CONNECT()->PREPARE($query);
SELF::$ST->EXECUTE((ARRAY) $param);
RETURN SELF::$ST->FETCH(PDO::FETCH_ASSOC);
}
}
/*
--------------------------------------
Получение всех строк из таблицы
--------------------------------------
*/
PUBLIC STATIC FUNCTION GET_STRING_ALL($query, $param = ARRAY())
{
IF (SELF::CONNECT(0)){
SELF::$ST = SELF::CONNECT()->PREPARE($query);
SELF::$ST->EXECUTE((ARRAY) $param);
RETURN SELF::$ST;
}
}
/*
------------------------------
Получение 1 столбца из таблицы
------------------------------
*/
PUBLIC STATIC FUNCTION GET_COLUMN($query, $param = ARRAY())
{
IF (SELF::CONNECT(0)){
SELF::$ST = SELF::CONNECT()->PREPARE($query);
SELF::$ST->EXECUTE((ARRAY) $param);
RETURN SELF::$ST->FETCHCOLUMN();
}
}
/*
---------------------------
Добавление строки в таблицу
---------------------------
*/
PUBLIC STATIC FUNCTION GET_ADD($query, $param = ARRAY())
{
IF (SELF::CONNECT(0)){
SELF::$ST = SELF::CONNECT()->PREPARE($query);
RETURN (SELF::$ST->EXECUTE((ARRAY) $param)) ? SELF::CONNECT()->LASTINSERTID() : 0;
}
}
/*
-----------------------------------
Изменение/удаление строки в таблице
-----------------------------------
*/
PUBLIC STATIC FUNCTION GET_SET($query, $param = ARRAY())
{
IF (SELF::CONNECT(0)){
SELF::$ST = SELF::CONNECT()->PREPARE($query);
RETURN SELF::$ST->EXECUTE((ARRAY) $param);
}
}
/*
---------------------------------------------
Выполнение запроса в базу данных из SQL файла
---------------------------------------------
*/
PUBLIC STATIC FUNCTION GET_SQL_FILE($path_file)
{
$file = FILE_GET_CONTENTS($path_file);
$data = EXPLODE(';' , $file);
IF ($file){
FOREACH ($data AS $el){
DB::GET_ADD($el);
}
RETURN 1;
}ELSE{
RETURN 0;
}
}
}
?>
// Хост, имя базы, кодировка
'mysql:host=' . $sys['db']['db_host'] . ';dbname=' . $sys['db']['db_name'] . ';charset=utf8',
// Юзер
$sys['db']['db_user'],
// Пароль
$sys['db']['db_pass'],
<?
define('DB_HOST', 'localhost'); // сервер
define('DB_NAME', ' '); // имя базы
define('DB_USER', ' '); // пользователь T8k6Y6z8
define('DB_PASS', ''); // пароль
define('DB_CHAR', 'utf8');
class MyPDO
{
public static $counter = 0;
protected static $instance = null;
//
public function __construct() {}
public function __clone() {}
public static function instance()
{
if (self::$instance === null)
{
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
PDO::ATTR_EMULATE_PREPARES => TRUE
);
try {
$dsn = 'mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset='.DB_CHAR;
self::$instance = new PDO($dsn, DB_USER, DB_PASS, $opt);
} catch (PDOException $e) {
die('Ошибка подключения '. $e->getMessage());
}
}
return self::$instance;
}
public static function __callStatic($method, $args)
{
if ($method == 'query' || $method == 'execute') static::$counter++;
return call_user_func_array(array(self::instance(), $method), $args);
}
public static function run($sql, $args = array())
{
static::$counter++;
$stmt = self::instance()->prepare($sql);
$stmt->execute($args);
return $stmt;
}
/*Пример на выборку данных*/
$sql = MyPDO::run("SELECT * FROM `users` WHERE `id` = ? LIMIT 1", array($user['id']))->fetch();
echo $sql['login'];
/*На изменение таблиц */
MyPDO::run("UPDATE `users` SET `test` = ? WHERE `id` = ?", array(10,$user['id']));
}
/*Вывод количества запросов*/
echo MyPDO::$counter;