Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A inicialização do PHP PDO falha devido à porta dupla - PDOException não capturada:SQLSTATE[HY000] [2002]


O comentário do showdev está correto de que o PDO DSN não permite a sintaxe host:port.

Se seu CMS estiver definindo DB_HOST fora de seu controle, você não poderá usar essa constante diretamente. Mas você pode extrair informações dele.
$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"));