Thread: check if column is NULL (php)

check if column is NULL (php)

From
"Robert Wimmer"
Date:
hi,

the question i have is : is it possible to check in a resultSet - as a
result of pg_query("SELECT ...") - if a column in this result can be set to
NULL.

important : it should work with any select statement - if i use only one
table in the select, i know that i could use pg_meta_data.

i need this for a existing formular generator, which works fine, but i cant
check if NULL values are allowed in this form if i dont know it.

to make it easier to understand what  i mean an example   :

$rs = pg_query("SELECT name,adress,value FROM person, bill");
for ($i = 0; $i < pg_num_rows($rs); $i++ ) {
  $myForm->pushInput(pg_field_name($i),pg_field_type($i), ...);
  // can this field be set to NULL?
  }

thanx

sepp

_________________________________________________________________
Hotmails und Messenger-Kommunikation am Handy? Für MSN Mobile kein Problem!
http://www.msn.at/msnmobile/


Re: check if column is NULL (php)

From
Michael Fuhr
Date:
On Sat, Dec 11, 2004 at 10:51:08PM +0000, Robert Wimmer wrote:

> the question i have is : is it possible to check in a resultSet - as a
> result of pg_query("SELECT ...") - if a column in this result can be set to
> NULL.
>
> important : it should work with any select statement - if i use only one
> table in the select, i know that i could use pg_meta_data.
>
> i need this for a existing formular generator, which works fine, but i cant
> check if NULL values are allowed in this form if i dont know it.

If PHP provides constraint metadata for queries then I'm not aware
of it.  If you want to know about a table's constraints then you'll
have to get them in a separate query (call pg_meta_data(), query
the PostgreSQL system catalogs, etc.).

An API that provides constraint metadata will have to explictly
query for it, although this could be made transparent to the
programmer.  The PostgreSQL protocol doesn't provide constraint
metadata in the RowDescription message, which is what describes the
field names and types in the subsequent DataRow messages (see the
"Frontend/Backend Protocol" chapter in the PostgreSQL documentation
for details).

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/