เพื่อความสมบูรณ์มีสามวิธีในการตั้งค่าการเข้ารหัสเมื่อเชื่อมต่อกับ MySQL จาก PDO และตัวเลือกใดที่ใช้ได้ขึ้นอยู่กับเวอร์ชัน PHP ของคุณ ลำดับของการตั้งค่าจะเป็น:
charset พารามิเตอร์ในสตริง DSN 
- เรียกใช้
SET NAMES utf8ด้วยPDO::MYSQL_ATTR_INIT_COMMANDตัวเลือกการเชื่อมต่อ 
- เรียกใช้
SET NAMES utf8ด้วยตนเอง 
โค้ดตัวอย่างนี้ใช้ทั้งสาม:
<?php
define('DB_HOST', 'localhost');
define('DB_SCHEMA', 'test');
define('DB_USER', 'test');
define('DB_PASSWORD', 'test');
define('DB_ENCODING', 'utf8');
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_SCHEMA;
$options = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
if( version_compare(PHP_VERSION, '5.3.6', '<') ){
    if( defined('PDO::MYSQL_ATTR_INIT_COMMAND') ){
        $options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES ' . DB_ENCODING;
    }
}else{
    $dsn .= ';charset=' . DB_ENCODING;
}
$conn = @new PDO($dsn, DB_USER, DB_PASSWORD, $options);
if( version_compare(PHP_VERSION, '5.3.6', '<') && !defined('PDO::MYSQL_ATTR_INIT_COMMAND') ){
    $sql = 'SET NAMES ' . DB_ENCODING;
    $conn->exec($sql);
}
การทำทั้งสามอย่างนั้นอาจเกินความเป็นจริง (เว้นแต่คุณจะเขียนชั้นเรียนที่คุณวางแผนจะแจกจ่ายหรือนำมาใช้ซ้ำ)