शोदेव की टिप्पणी सही है कि पीडीओ डीएसएन होस्ट:पोर्ट सिंटैक्स की अनुमति नहीं देता है।
यदि आपका CMS DB_HOST को आपके नियंत्रण से बाहर परिभाषित कर रहा है, तो आप सीधे उस स्थिरांक का उपयोग नहीं कर सकते। लेकिन आप इससे जानकारी निकाल सकते हैं।
$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"));