Je ne pense pas qu'obtenir des données dans leurs types de données natifs (c'est-à-dire tout autre chose que des chaînes) peut être fait en PHP 5.2...
En PHP 5.3, cela devient possible, si je me souviens bien, lorsque vous utilisez le nouveau (nouveau comme en PHP>=5.3) mysqlnd (pilote natif MySQL) chauffeur.
Après avoir fouillé davantage dans mes signets, j'ai trouvé cet article sur mysqlnd :/">PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
Il dit ceci (citation) :
Mais c'est PHP 5.3 uniquement (à condition que votre version de PHP 5.3 soit compilée avec mysqlnd (et pas l'ancienne libmysql) ), et ne semble être le cas que pour les instructions préparées :-(
Ce qui n'aide pas vraiment, dans votre situation, je suppose...
Et en voici une autre, toujours sur les nouveautés de mysqlnd, qui en parle pas seulement pour les requêtes préparées :PHP :nouvelles économies de trafic réseau, de CPU et de mémoire avec mysqlnd
.
Je ne suis pas sûr que cela ait été fusionné dans le pilote officiel mysqlnd -- le mieux serait d'essayer; mais ce sera toujours PHP>=5.3 uniquement, de toute façon...
Une autre solution serait d'avoir, côté PHP, une sorte de système de mappage (comme un ORM) pour convertir les résultats provenant de la BD en types de données PHP...
Et oui, c'est mauvais si vous voulez utiliser des opérateurs comme ===
et !==
, qui sont sensibles au type...