Hola encontré este código en un blog y me llamo mucho la atención y me di a la tarea de implementarlo en un proyecto personal.
Para ese momento tenia instalado wampserver el cual instala como todos sabemos php5, mysql y apache. Esta versión de wampserver instalaba php 5.2.
Hasta el momento el código me funcionaba muy bien y todo corría correctamente. Luego instale el XAMPP ya que a mi entender brinda mayores prestaciones además de tener la versión de PHP 5.3 y MySQL 5.1.37.
Y entonces comenzaron mis problemas, al parecer los argumentos por defecto en PHP 5.3 se pasan de otra forma.
Código PHP:
Ver originalfinal class Database
{
private static $dns = DNS;
private static $username = USERNAME;
private static $password = PASSWORD;
private static $instance;
private static $PDO;
private function __construct()
{
try {
self::$PDO = new PDO(self::$dns, self::$username, self::$password);
self::$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
public static function getInstance()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
public function query($statement, $PDO = null, $object = null)
{
return self::$PDO->query($statement, $PDO, $object);
}
}
$db = Database::getInstance();
$db->query('DESCRIBE `table`');
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: mode must be an integer' in D:\xampp\htdocs\db\Database.php:160 Stack trace: #0 D:\xampp\htdocs\db\Database.php(160): PDO->query('DESCRIBE `table...', NULL, NULL) #1 D:\xampp\htdocs\db\Database.php(393): Database->query('DESCRIBE `table...') #2 {main} thrown in D:\xampp\htdocs\db\Database.php on line 160
No entiendo porque este mismo codigo funciona bien en PHP 5.2 y en PHP 5.3 lanza este error.
Espero que alguno de ustedes me pueda ayudar