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 original
final 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() { { $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