Это плохо тем, что переменную можно переопределить, лучше сделать по второму способу от
Александр N++ А вот очень простой, но полезный класс
<?php
class DB {
private static $instance;
public static function __callStatic($name, $args) {
if (!self::$instance) self::getInstance();
return call_user_func_array([self::$instance, $name], $args);
}
public static function getInstance() {
self::$instance = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', '');
self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
self::$instance->query('SET NAMES `utf8`');
}
}
Использовать его можно примерно так
$query= DB::query('SELECT * FROM `users`');
$prepare = DB::prepare('...')->execute(...);
Надеюсь, что суть ясна )