ID: 47051 User updated by: germ dot van dot eck at gmail dot com Reported By: germ dot van dot eck at gmail dot com Status: Open Bug Type: PostgreSQL related Operating System: Linux, Ubuntu 8.04 PHP Version: 5.2.8 New Comment:
I did not complete my sentence... "This causes that postgresql." should be "This causes that postgresql's booleans are not very usable in PHP". Previous Comments: ------------------------------------------------------------------------ [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 http://bugs.php.net/?id=47051&edit=1