Mysql
 sql >> Database >  >> RDS >> Mysql

L'inizializzazione di PHP PDO non riesce a causa della doppia porta - Uncaught PDOException:SQLSTATE[HY000] [2002]

il commento di showdev è corretto sul fatto che il DSN PDO non consente la sintassi host:port.

Se il tuo CMS sta definendo DB_HOST al di fuori del tuo controllo, non puoi usare quella costante direttamente. Ma puoi estrarre informazioni da esso.

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