Constante de clase no definida ‘MYSQL_ATTR_INIT_COMMAND’ en constante de clase sin definir (PHP 5.5.3)

Tengo un archivo de configuración que se conecta a una base de datos remota, sin embargo, sigo recibiendo un error que no sé cómo corregir. En las versiones anteriores estaba destinado a ser un error pero asumí que se habría corregido en 5.5.3.

 'SET NAMES utf8'); try { $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username$ } catch(PDOException $ex) { die("Failed to connect to the database: " . $ex->getMessage()); } $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); header('Content-Type: text/html; charset=utf-8'); echo "File works"; ?> 

Sigo recibiendo el error "Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'" . He intentado usar 1002 en lugar de ‘MYSQL_ATTR_INIT_COMMAND’ pero acabo con el error "syntax error, unexpected '1002' (T_LNUMBER)" error de "syntax error, unexpected '1002' (T_LNUMBER)" lugar y también he instalado la extensión más nueva de php-mysql.

Intenta editar tu php.ini:

En un servidor de Windows puede agregar las siguientes líneas en su php.ini

  extension=php_pdo.dll extension=php_pdo_mysql.dll 

En un servidor Linux puede comstackr php con la siguiente opción –with-pdo-mysql

En tu php.ini, agrega las siguientes líneas

  extension=pdo.so extension=pdo_mysql.so 

La constante PDO::MYSQL_ATTR_INIT_COMMAND está definida por el controlador MySQL de la extensión PDO. Lo más probable es que se olvidó de instalar cualquiera.

Una vez que instale las extensiones apropiadas, puede olvidarse de PDO::MYSQL_ATTR_INIT_COMMAND . La forma correcta de establecer la encoding de conexión es lo que ya hace: el parámetro DSN en el constructor:

 $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username$ ^^^^^^^^^^^^ 

Por último, pero no menos importante, su código parece tener muchos errores de syntax. Debe habilitar el informe completo de errores en su archivo php.ini porque estas líneas:

 error_reporting(E_ALL); ini_set('display_errors', 'on'); 

… no se ejecutará si el script ni siquiera se puede ejecutar.

En Ubuntu 14.04

Instalar el paquete php5-mysql

sudo apt-get install php5-mysql

Si lo anterior ya está instalado.

sudo php5enmod pdo

sudo php5enmod pdo_mysql

Reiniciar el servidor web