Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'initialisation de PHP PDO échoue en raison d'un double port - PDOException non détecté :SQLSTATE[HY000] [2002]

Le commentaire de showdev est correct que le DSN PDO n'autorise pas la syntaxe host:port.

Si votre CMS définit DB_HOST hors de votre contrôle, vous ne pouvez pas utiliser cette constante directement. Mais vous pouvez en extraire des informations.

$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"));