Мой простой класс для роботы с pdo:
<?php
class DB {
protected static $connection;
private static $querycount = 0;
private static $querytime = 0.0;
public static function connection() {
if (is_null(static::$connection)) {
# Данные от бд
$dbcfg = [
'host' => 'localhost',
'name' => 'game2',
'user' => 'root',
'pass' => ''
];
# Параметры подключения
$opt = [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
try {
static::$connection = new PDO("mysql:host=".$dbcfg['host'].";dbname=".$dbcfg['name'], $dbcfg['user'], $dbcfg['pass'], $opt);
} catch (PDOException $e) {
throw new RuntimeException('Не удалось установить соединение с базой данных:%s'. $e->getMessage());
}
}
return static::$connection;
}
public static function prepare($sql, $values = null) {
$stime = microtime(true);
$sth = static::connection()->prepare($sql);
$sth->execute($values);
static::$querytime += (microtime(true) - $stime);
static::$querycount++;
return $sth;
}
public static function getQueryCount() {
return static::$querycount;
}
public static function getQueryTime() {
return self::$querytime;
}
public static function __callStatic($method, array $arguments ) {
return call_user_func_array([static::connection(), $method], $arguments);
}
}
?>