pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах

Описание

array pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options = 0 ] )

pg_convert() проверяет и преобразовывает значения из assoc_array в приемлемые для SQL сервера. Необходимо, чтобы существовала таблица table_name, а количество колонок в ней должно быть не меньше, чем значений в массиве assoc_array. Имена колонок в таблице table_name должны совпадать с ключами массива assoc_array, типы данных значений массива также должны совпадать с типами данных соответствующих колонок. В случае удачной конвертации функция возвращает массив преобразованных значений, иначе возвращает FALSE.

Замечание:

Если таблица table_name содержит поля типа boolean, не используйте константу TRUE в качестве значения массива table_name для этих полей. Она будет преобразована в строку 'TRUE', которая является недопустимым значением для boolean полей в 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, либо их комбинация.

Возвращаемые значения

Массив (array), содержащий преобразованные данные, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_convert()

<?php 
  $dbconn 
pg_connect('dbname=foo');
  
  
$tmp = array(
      
'author' => 'Joe Thackery',
      
'year' => 2005,
      
'title' => 'My Life, by Joe Thackery'
  
);
  
  
$vals pg_convert($dbconn'authors'$tmp);
?>

Смотрите также

  • pg_meta_data() - Получение метаданных таблицы

Коментарии

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.
2003-05-12 09:28:45
http://php5.kiev.ua/manual/ru/function.pg-convert.html
Автор:
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.
2004-03-31 11:02:34
http://php5.kiev.ua/manual/ru/function.pg-convert.html
Автор:
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.
2005-02-24 14:03:00
http://php5.kiev.ua/manual/ru/function.pg-convert.html
There is a problem when using interval.
If in the array 
"time_pause" => '00:30:00'
and time_pause is an interval
the insert fails
pg_insert(): '00:30:00' does not match with  '^(@?[ \t]+)?((([-+]?[ \t]+)?[0-9]+(\.[0-9]*)?[ ...
2014-10-07 23:41:50
http://php5.kiev.ua/manual/ru/function.pg-convert.html
Автор:
This will only apply the appropriate escaping and such appropriate for embedding the PHP value into an SQL statement.

It does (by default) check for nulls when the column is marked NOT NULL, and it will complain about trying to convert strings for an integer column (floats will be truncated).

Beyond the barest checking of syntax, however, it does NOT verify that the given value is a legitimate value for the column type.

<?php
// Assuming smallints.smallintis a smallint (-32768..32767) type column
foreach([-1234,
   
1234,
   
0,
   
32767,
    -
32768,
   
32768// bogus value for smallint type
   
45.8,   // gets truncated to 45
   
400000// bogus value for smallint type
   
] as $smallint)
{
   
$tmp = ['smallint' => $smallint];
   
$vals pg_convert($dbconn'smallints', ['smallint' => $smallint]);
    echo 
$vals['"smallint"'],"\n"// Notice the column name is also made SQL-safe
}

// Assuming uuids.uuid is a UUID type column
foreach(['a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
   
'A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11',
   
'a0eebc999c0b4ef8bb6d6bb9bd380a11',
   
'{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}',
   
'Invalid Not-a-UUID',
   
'{a0eebc99-9c0b4ef8-bb6d6bb9-bd380a11}',
   
'a0ee-bc99-9c0b-4ef8-bb6d-6bb9-bd38-0a11',
    ] as 
$uuid)
{
   
$tmp = ['uuid' => $uuid];
   
$vals pg_convert($dbconn'uuids', ['uuid' => $uuid]);
    echo 
$vals['"uuid"'],"\n";
}

?>

All of the above data values will be "converted" - even the invalid ones - without complaint.
2017-07-16 05:13:56
http://php5.kiev.ua/manual/ru/function.pg-convert.html

    Поддержать сайт на родительском проекте КГБ