Để trả lời câu hỏi cuối cùng của bạn trước tiên, "có", rất tiếc là việc nhận các số dưới dạng chuỗi là điều bình thường. Như hướng dẫn được Pascal trích dẫn, mysqlnd (PHP 5.3) sẽ trả về các kiểu dữ liệu gốc từ các câu lệnh đã chuẩn bị, miễn là bạn tắt mô phỏng câu lệnh đã chuẩn bị từ PDO.
new PDO($dsn, $user, $pass, array(
PDO::ATTR_EMULATE_PREPARES => false
))
PDO ::ATTR_STRINGIFY_FETCHES không liên quan đến MySQL.
Nếu bạn nhìn vào khía cạnh sáng sủa, thì tốt hơn hết là bạn nên sử dụng các câu lệnh đã chuẩn bị sẵn, vì vậy ...;)