maturano:
Nunca afirme que no se podía. En cuanto a tu código buen aporte, veo que estuviste haciendo la tarea en casa. Estoy convencido y no hay más peros.
El código quedaría así:
Código PHP:
Ver original<?php
/**
* Represents a connection between PHP and a database server
*
*/
final class Database extends PDO
{
static private $dns = DNS;
static private $username = USERNAME;
static private $passwd = PASSWD;
static private $options;
static private $instance;
static private $constructIsPrivate = true;
/**
* A private constructor; prevents direct creation of object
*
* @access static private
*/
public function __construct()
{
if (self::$constructIsPrivate) {
trigger_error('Call to private ' . __CLASS__ . '::__construct() from invalid context', E_USER_ERROR); }
try {
parent::__construct(self::$dns, self::$username, self::$passwd/*, self::$options*/);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
/**
* Create a instance of Database class with The singleton method
*
* @access static public
* @return Database object
*/
static public function getInstance()
{
if (!isset(self::$instance)) {
self::$constructIsPrivate = false;
$c = __CLASS__;
self::$instance = new $c;
self::$constructIsPrivate = true;
}
return self::$instance;
}
/**
* Executes an SQL statement, returning a result set as a PDOStatement object
*
* @access public
* @param string $statement
* @param $PDO
* @param object $object
* @return PDOStatement
*/
public function query($statement, $PDO, $object)
{
return parent::query($statement, $PDO, $object);
}
/**
* Prevent users to clone the instance
*
* @access public
* @return string trigger_error
*/
public function __clone()
{
}
}
?>