sql >> Base de Datos >  >> RDS >> Mysql

La inicialización de PDO de PHP falla debido a un puerto doble:excepción de PDO no detectada:SQLSTATE [HY000] [2002]

El comentario de showdev es correcto en cuanto a que el PDO DSN no permite la sintaxis host:port.

Si su CMS está definiendo DB_HOST fuera de su control, no puede usar esa constante directamente. Pero puedes sacar información de ahí.

$host_port = preg_replace('/:(\d+)/', ';port=${1}', DB_HOST);
$db = new PDO("mysql:host={$host_port};dbname=".DB_NAME.";charset=utf8", 
    DB_USER, DB_PW, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));