Re: PHP and PostgreSQL boolean data type

Chris <[email protected]> Thu, 11 Feb 2010 08:56:36 +1100
Newsgroups gmane.comp.db.postgresql.php,gmane.comp.db.postgresql.general
Message-ID <[email protected]>
Thom Brown wrote:
> Hi,
> 
> A long-standing problem we've had with PostgreSQL queries in PHP is
> that the returned data for boolean columns is the string 'f' instead
> of the native boolean value of false.
> 
> An obvious example of this would be for a table with users and their
> boolean registered status:
> 
> Select user, registered From users;
> 
> Then getting a row from the result would reveal: array('user' =>
> 'thomb', registered => 'f');

That's how postgres stores them, php doesn't understand the field is a 
boolean.

# create table a(a int, b boolean);
# insert into a(a, b) values (1, true);
# insert into a(a, b) values (2, false);
# SELECT * from a;
  a | b
---+---
  1 | t
  2 | f
(2 rows)

Also while not in the "official" docs, it is a note from 2002:

http://www.php.net/manual/en/ref.pgsql.php#18749

and

http://www.php.net/manual/en/function.pg-fetch-array.php says

Each value in the array is represented as a string. Database NULL 
values are returned as NULL.


> Another problem is with arrays, where they are difficult to parse as
> they also come through as plain strings with no binary alternative.

Haven't played with postgres arrays so can't say either way - but same 
as above, php just fetches the data.

There's an example that might help you - 
http://www.php.net/manual/en/ref.pgsql.php#89841

-- 
Postgresql & php tutorials
http://www.designmagick.com/


-- 
Sent via pgsql-php mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php