Hola, no veo por que defines la clase como abstract; se deben definir así sólo si tienes metodos abstractos y no veo ninguno.
te dejo un singleton para conecciones con pdo.
Espero te sirva saludos.
Código PHP:
Ver originalclass DbConn {
private static $engine = 'mysql';
private static $host = 'localhost';
private static $usuario = 'xxxxxxxx';
private static $password = 'xxxxxxxxxx';
private static $base = 'xxxxxxxxxxx';
private static
$CONFIG = array( PDO
::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' ); private static $instance;
/**
*
*/
private function __construct() {
}
private function __clone() {
}
/**
* @return string
*/
public function __toString() {
return 'Conección a Bd';
}
/**
* @return PDO
*/
public static function getInstance() {
if (!isset(self::$instance)) { $conn = self::$engine
. ':dbname=' . self::$base
. ';host=' . self::$host;
try {
$PDO = new PDO($conn , self::$usuario , self::$password , self::$CONFIG);
self::$instance = $PDO;
} catch (PDOException $e) {
exit('Falló la conexión: ' . $e->getMessage()); }
}
return self::$instance;
}
}
//USO
$PDO=DbConn::getInstance();