Je ne pense pas que l'obtention de données dans leurs types de données natifs (ie toute autre chose que les chaînes) peut être fait en PHP 5.2 ...
En PHP 5.3, il devient possible, si je me souviens bien, lorsque vous utilisez le nouveau (nouveau comme dans PHP> = 5.3) pilote mysqlnd (MySQL Native Driver).
Après plus fouiller dans mes favoris, j'ai trouvé cet article sur mysqlnd: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
Il dit ceci (citation):
Avantages de l'utilisation mysqlnd pour AOP
mysqlnd retourne natif types de données lorsque à l'aide des instructions préparées côté serveur, par exemple une colonne INT est renvoyé comme un entier variabl e pas comme une chaîne . Cela signifie moins de conversions de données internes .
Mais ceci est PHP 5.3 seulement (à condition que votre version de PHP 5.3 est compilé avec mysqlnd (et non l'ancien libmysql)), et semble être le cas que pour les commandes préparées :-(
qui n'a pas tout à fait de l'aide, dans votre situation, je suppose ...
Et voici un autre, toujours sur les nouvelles fonctionnalités de mysqlnd, qui parle de cela pour non seulement des déclarations préparées. PHP: New network traffic, CPU and memory savings with mysqlnd
Vous ne savez pas si cela a été fusionné dans le pilote mysqlnd officiel, cependant - le meilleur moyen serait d'essayer; mais il sera toujours PHP> = 5.3 seulement, de toute façon ...
Une autre solution serait d'avoir, sur le côté PHP, une sorte de système de cartographie (comme un ORM) à convertir les résultats en provenance de la DB PHP ... datatypes
et oui, cela est mauvais si vous voulez utiliser des opérateurs tels que ===
et !==
, qui sont de type sensibles ...
Merci Pascal MARTIN! Je googling depuis plusieurs heures et n'ai rien trouvé que je pourrais utiliser. Je suis relativement nouveau à PHP, mais il semble que je devrais aller avec PDO si je veux le support natif. Malheureusement, mon hôte est en cours d'exécution 5.2.something ... Aussi difficile, c'est que j'essaie de créer une entrée de fichier de rapport xml qui contient différentes informations de requête. Le script PHP lit le fichier xml demandé et envoie les requêtes à la base de données, donc je ne saurai jamais quelles données sont interrogées et comment elles doivent être retournées. temps pour être créatif je suppose :) –
PDO ou pas PDO ne devrait rien changer, dans ce cas: ce qui compte est les pilotes utilisés sous * (libmysql vs mysqlnd) * - et je ne suis même pas sûr que mysqlnd dans PHP 5.3.2 renvoie des types natifs pour les requêtes standard ;;; dans votre cas, de toute façon, avec PHP 5.2, la seule solution que vous aurez sera une couche de mapping, qui tapera les conversions si nécessaire ... –
Notez que vous devrez [désactiver l'émulation d'instruction préparée] (http://stackoverflow.com/a/15592818/441684) si vous utilisez PDO. –