Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-PDO-Initialisierung schlägt wegen doppeltem Port fehl - Uncaught PDOException:SQLSTATE[HY000] [2002]

Der Kommentar von showdev ist richtig, dass der PDO-DSN keine host:port-Syntax zulässt.

Wenn Ihr CMS DB_HOST außerhalb Ihrer Kontrolle definiert, können Sie diese Konstante nicht direkt verwenden. Aber Sie können Informationen daraus ziehen.

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