Edit report at https://bugs.php.net/bug.php?id=47051&edit=1

 ID:                 47051
 Updated by:         yohg...@php.net
 Reported by:        germ dot van dot eck at gmail dot com
 Summary:            pg_fetch_object does not convert to literal PHP
                     booleans
-Status:             Open
+Status:             Assigned
 Type:               Feature/Change Request
 Package:            PostgreSQL related
 Operating System:   Linux, Ubuntu 8.04
 PHP Version:        5.2.8
-Assigned To:        
+Assigned To:        yohgaki
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2012-01-26 13:17:45] morphunreal at gmail dot com

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

------------------------------------------------------------------------
[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

Reply via email to