Edit report at https://bugs.php.net/bug.php?id=47051&edit=1
ID: 47051 Comment by: morphunreal at gmail dot com Reported by: germ dot van dot eck at gmail dot com Summary: pg_fetch_object does not convert to literal PHP booleans Status: Open Type: Feature/Change Request Package: PostgreSQL related Operating System: Linux, Ubuntu 8.04 PHP Version: 5.2.8 Block user comment: N Private report: N New Comment: I have created & submitted a patch that allows pgsql to return booleans and integers for all fetches. to test / use-> - get current source for php/ext/pgsql - apply patch - phpize - ./configure --with-pgsql=/path/to/pgsql/c-api - make - stop web server - copy modules/pgsql.so over existing one - add to /etc/php.d/pgsql.conf pgsql.convert_boolean_type = 1 pgsql.convert_integer_type = 1 - start web server Previous Comments: ------------------------------------------------------------------------ [2009-01-11 01:05:09] fel...@php.net This isn't a bug, it's only as pgsql works. Moved to Feature/Change request. ------------------------------------------------------------------------ [2009-01-09 13:30:24] germ dot van dot eck at gmail dot com I did not complete my sentence... "This causes that postgresql." should be "This causes that postgresql's booleans are not very usable in PHP". ------------------------------------------------------------------------ [2009-01-09 13:24:51] germ dot van dot eck at gmail dot com Description: ------------ Postgresql booleans are internally stored as either 'f' or 't' (False or True). On retrieval using pg_fetch_object, they are simply retrieved as PHP strings, rather than either 0 or 1, or even better, false or true. This causes that postgresql. I am not sure, but I think in the data returned by the server, there is metadata explaining the field types and so they could be automatically converted to PHP bools. This is from a bugreport and related forum topic that was made for the CodeIgniter framework. Bugreport (slighly unrelated CI bug, but this issue was discussed in the comments): http://codeigniter.com/bug_tracker/bug/6303/ Forum topic: http://codeigniter.com/forums/viewthread/101001/ Reproduce code: --------------- <?php $conn_string = "host=testserver dbname=testdb user=foo password=bar"; $dbconn = pg_connect($conn_string); pg_query('CREATE TABLE test(test boolean)'); pg_query('INSERT INTO test(test) VALUES(TRUE)'); $res = pg_query('SELECT * FROM test'); $obj = pg_fetch_object($res); echo "\n".$obj->test."\n"; pg_query('DROP TABLE test'); ?> Expected result: ---------------- 1 Actual result: -------------- t ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=47051&edit=1