Why does this function, pg_convert(), reject the string 'TRUE' as a valid value for the boolean types? I'm using PHP 4.3.9 and my web page originally set the value for submission to update, to 'TRUE'. pg_convert() threw it back to me saying that it's not a valid value for boolean types. However, the postgresql website says otherwise. See http://www.postgresql.org/docs/7.4/static/datatype-boolean.html for the context of my question/comment.
pg_convert
(PHP 4 >= 4.3.0, PHP 5)
pg_convert — Преобразува стойностите на асоциативен масив във вид, подходящ за израз SQL
Описание
pg_convert() проверява и преобразува стойностите на assoc_array в подходящи стойности, които да бъдат използвани в израз SQL. Предварително условие за pg_convert() е наличието на таблица table_name , която да има поне толкова колони, колкото са елементите на assoc_array . Имената на полетата в table_name трябва да отговарят на индексите в assoc_array и съответните типове данни трябва да бъдат съвместими. Връща масив с преобразуваните стойности при успех, и FALSE - иначе.
Забележка: Ако има булеви полета в table_name , недейте да използвате константата TRUE в assoc_array . Тя ще бъде преобразувана в низа 'TRUE', който не е валидна стойност за булево поле в PostgreSQL. Вместо това използвайте някое от: t, true, 1, y, yes.
Тази функция е ЕКСПЕРИМЕНТАЛНА. Поведението на функцията, името й, както и съпътстващата документация, могат да бъдат променени без предупреждение в бъдеща версия на PHP. Тази функция би трябвало да бъде използвана единствено на ваша собствена отговорност.
Параметри
- connection
-
Ресурс с връзката към база от данни PostgreSQL.
- table_name
-
Име на таблица, за която ще се преобразуват типовете.
- assoc_array
-
Данни за преобразуване.
- options
-
Каква да е комбинация от PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL или PGSQL_CONV_IGNORE_NOT_NULL.
Връщани стойности
Масив с върнатите стойности, или FALSE при грешка.
Примери
Example #1 Пример за pg_convert()
<?php
$dbconn = pg_connect('dbname=foo');
$tmp = array(
'author' => 'Алеко Константинов',
'year' => 1894,
'title' => 'До Чикаго и назад'
);
$vals = pg_convert($dbconn, 'authors', $tmp);
?>
The only options that I see are:
PGSQL_CONV_IGNORE_DEFAULT - Do not use DEAFULT value by removing field from returned array
PGSQL_CONV_FORCE_NULL - Convert to NULL if string is null string
PGSQL_CONV_IGNORE_NOT_NULL - Ignore NOT NULL constraints
These are constants, so don't quote them or anything.
I've found "options" possible values:
PG_CONV_CHECK - check only
PG_CONV_STRICT - raise warning for non fatal error
PG_CONV_QUOTE - add quote around values for vchar, text datetime.
PG_CONV_SLASH - add slashes if it needed.
PG_CONV_NULLCHK - check values are defined for NOT NULL fields.
PG_CONV_NO_DEFAULT - ignore default value even if value is empty string.
