Utilisation de la norme php5-pgsql il me semble que, au moins avec les paramètres par défaut de php sur ubuntu 10.04, les valeurs de résultat ne sont pas mises en correspondance avec les types standard de php. C'est-à-dire que
- postresql::integer => php::int
- postresql::real => php::float
- etc.
Et renvoyer les valeurs de résultat en les transformant en chaînes de caractères. Cela crée parfois beaucoup de maux de tête lorsque la locale du système ne coïncide pas avec la locale de la base de données, etc.
Est-il possible d'obtenir le casting approprié en php ? Si ce n'est pas le cas, toute explication serait la bienvenue !
EDIT :
Le PDO a résolu le problème "postresql::integer=>php::int", mais pas pour ex. "postresql::real=>php::float" il semble à cause de cela que PDO utilise les pilotes natifs qui est pgsql comme je comprends. La question de l'encodage n'est pas un problème dans mon cas, le seul besoin est de mapper les types exactement ou au moins aussi proche que possible !
$sql = 'SELECT integer_field, numeric_field_10_2 FROM table';
foreach ($dbh->query($sql) as $row) {
var_dump($row);
}
----------------------------------------
array(4) {
["integer_field"]=>int(79)
["numeric_field_10_2"]=>string(6) "100.12"
}
Merci, je.