Я не думаю, что получение данных в их собственных типах данных (т. Е. Что-либо, кроме строк) может быть сделано в PHP 5.2 ...
В PHP 5.3 это становится возможным, если я правильно помню, когда вы используете новый (новый, как в PHP> = 5.3) mysqlnd (собственный драйвер MySQL) драйвер .
После того, как я покопался в моих закладках, я нашел эту статью о mysqlnd: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
Это говорит это (цитата):
Преимущества использования mysqlnd для PDO
mysqlnd возвращает собственные типы данных, когда
используя подготовленные операторы на стороне сервера,
например, столбец INT возвращается
как целочисленная переменная, а не как
строка. Это означает, что меньше данных
внутренние преобразования.
Но это только PHP 5.3 (при условии, что ваша версия PHP 5.3 скомпилирована с помощью mysqlnd (, а не старого libmysql) ) и, похоже, имеет место только для подготовленных операторов: - (
Что не совсем помогает, в вашей ситуации, я думаю ...
А вот еще один, все еще о новых функциях mysqlnd, который говорит об этом не только для подготовленных операторов: PHP: новый сетевой трафик, экономия ресурсов процессора и памяти с помощью mysqlnd .
Не уверен, что это было объединено с официальным драйвером mysqlnd - лучший способ - попробовать; но все равно это будет только PHP> = 5.3 ...
Другим решением было бы иметь на стороне PHP какую-то систему отображения (например, ORM) для преобразования результатов, поступающих из БД, в типы данных PHP ...
И да, это плохо, если вы хотите использовать такие операторы, как ===
и !==
, которые чувствительны к типу ...