Используя стандартный драйвер php5-pgsql , я получаю, что, по крайней мере, с настройками php по умолчанию в ubuntu 10.04, значения результата не отображаются на стандартные типы php.То есть
- postresql :: integer => php :: int
- postresql :: real => php :: float
- etc
И вернуть значения результата, приведенные к строкам.Иногда это создает сильную головную боль, когда локаль системы не совпадает с локалью базы данных и т. Д.
Можно ли как-нибудь получить соответствующий кастинг в php?Если нет, то любая идея о том, почему очень приветствуется!
РЕДАКТИРОВАТЬ:
PDO решил "postresql :: integer => php :: int", но ненапример"postresql :: real => php :: float", кажется, из-за того, что PDO использует родные драйверы, то есть pgsql, как я понимаю.Проблема с кодированием не является проблемой в моем случае, единственная необходимость состоит в том, чтобы отображать типы точно или хотя бы как можно ближе!
$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"
}
Спасибо, я.