Функции PostgreSQL
Примечания
Замечание:
Не все функции могут поддерживаться в собранном модуле. Это зависит
от версии вашей libpq (клиентская библиотека PostgreSQL) и как libpq
была собрана. Если модуль PostgreSQL для PHP отсутствует, то это
значит, что версия вашей libpq не поддерживается.
Замечание:
Большинство функций PostgreSQL принимают connection
в качестве первого необязательного параметра. Если параметр отсутствует, то
используется последнее открытое соединение. Если же такого не существует, то
функция возвращает false .
Замечание:
PostgreSQL автоматически переводит все идентификаторы (такие как имена
таблиц/столбцов) в нижний регистр во время создания объекта и выполнения
запроса. Для того, чтобы заставить использовать идентификаторы в обоих
или только в верхнем регистрах, вы должны экранировать идентификатор с помощью
двойных кавычек ("").
Замечание:
В PostgreSQL нет специальных команд для получения информации о схеме БД
(к примеру, всех таблиц выбранной базы данных). Но вместо этого
существует стандартная схема, которая называется
information_schema. Она содержит системные представления
(view) со всей необходимой информацией в легкодоступной форме. Для
дополнительной информации смотрите » документацию PostgreSQL
Содержание
- pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
- pg_cancel_query — Остановка асинхронного запроса.
- pg_change_password — Изменяет пароль пользователя PostgreSQL
- pg_client_encoding — Получение кодировки клиента.
- pg_close — Закрывает соединение с базой данных PostgreSQL
- pg_connect — Открывает соединение с базой данных PostgreSQL
- pg_connect_poll — Опросить статус попытки асинхронного соединения PostgreSQL.
- pg_connection_busy — Проверяет, занято ли соединение в данный момент.
- pg_connection_reset — Сброс подключения (переподключение)
- pg_connection_status — Определяет состояние подключения
- pg_consume_input — Читает вводные данные на соединении
- pg_convert — Преобразовывает значения ассоциативного массива в вид, который соответствует SQL-запросам
- pg_copy_from — Вставляет записи из массива в таблицу
- pg_copy_to — Копирует данные из таблицы в массив
- pg_dbname — Определяет имя базы данных
- pg_delete — Удаляет записи
- pg_end_copy — Синхронизирует с бэкендом PostgreSQL
- pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
- pg_escape_identifier — Экранирует идентификатор перед вставкой в текст SQL-инструкции
- pg_escape_literal — Экранировать литерал при вставке в текстовое поле
- pg_escape_string — Экранирование спецсимволов в строке запроса
- pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат
- pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив
- pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив
- pg_fetch_array — Возвращает строку результата в виде массива
- pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив
- pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта
- pg_fetch_result — Возвращает значение ячейки из результата запроса
- pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив
- pg_field_is_null — Проверяет поле на SQL-значение NULL
- pg_field_name — Возвращает наименование поля
- pg_field_num — Возвращает порядковый номер именованного поля
- pg_field_prtlen — Возвращает количество выводимых символов
- pg_field_size — Возвращает размер поля
- pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле
- pg_field_type — Возвращает имя типа заданного поля
- pg_field_type_oid — Возвращает идентификатор типа заданного поля
- pg_flush — Сбросить данные исходящего запроса на соединении
- pg_free_result — Очищает результат запроса и освобождает память
- pg_get_notify — Получение SQL NOTIFY сообщения
- pg_get_pid — Получает ID процесса сервера БД
- pg_get_result — Получает результат асинхронного запроса
- pg_host — Возвращает имя хоста, соответствующего подключению
- pg_insert — Заносит данные массива в таблицу базы данных
- pg_jit — Возвращает информацию о JIT сервера
- pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных
- pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL
- pg_last_oid — Возвращает OID последней добавленной в базу строки
- pg_lo_close — Закрывает большой объект
- pg_lo_create — Создаёт большой объект
- pg_lo_export — Вывод большого объекта в файл
- pg_lo_import — Импортирует большой объект из файла
- pg_lo_open — Открывает большой объект базы данных
- pg_lo_read — Читает данные большого объекта
- pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в браузер
- pg_lo_seek — Перемещает внутренний указатель большого объекта
- pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта
- pg_lo_truncate — Обрезает большой объект
- pg_lo_unlink — Удаление большого объекта
- pg_lo_write — Записывает данные в большой объект
- pg_meta_data — Получение метаданных таблицы
- pg_num_fields — Возвращает количество полей в выборке
- pg_num_rows — Возвращает количество строк в выборке
- pg_options — Получение параметров соединения с сервером баз данных
- pg_parameter_status — Просмотр текущих значений параметров сервера
- pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
- pg_ping — Проверка соединения с базой данных
- pg_port — Возвращает номер порта, соответствующий заданному соединению
- pg_prepare — Отправляет на сервер запрос на подготовку SQL-запроса с параметрами-заполнителями
и ждёт, пока завершится подготовка запроса
- pg_put_copy_data — Отправляет данные на сервер при выполнении операции COPY
- pg_put_copy_end — Сообщает серверу о завершении операции COPY
- pg_put_line — Передаёт на PostgreSQL сервер строку с завершающим нулём
- pg_query — Выполняет запрос
- pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
- pg_result_error — Возвращает сообщение об ошибке, связанное с запросом результата
- pg_result_error_field — Возвращает конкретное поле из отчёта об ошибках
- pg_result_memory_size — Возвращает объём памяти, выделенный для результата запроса
- pg_result_seek — Смещает указатель на строку выборки в экземпляре результата запроса
- pg_result_status — Возвращает статус результата запроса
- pg_select — Выбирает записи из базы данных
- pg_send_execute — Запускает предварительно подготовленный SQL-запрос и
передаёт ему параметры; не ожидает возвращаемого результата
- pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения,
не дожидаясь его завершения
- pg_send_query — Отправляет асинхронный запрос
- pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
- pg_set_chunked_rows_size — Устанавливает для подключения режим, в котором результаты запроса извлекаются частями
- pg_set_client_encoding — Устанавливает клиентскую кодировку
- pg_set_error_context_visibility — Определяет видимость сообщений об ошибках контекста, возвращаемых функциями pg_last_error
и pg_result_error
- pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями
pg_last_error и pg_result_error
- pg_socket — Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL
- pg_socket_poll — Проверяет, готов ли сокет PostgreSQL-соединения к чтению или записи
- pg_trace — Включает трассировку подключения PostgreSQL
- pg_transaction_status — Возвращает текущее состояние транзакции на сервере
- pg_tty — Возвращает имя терминала TTY, связанное с соединением
- pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
- pg_untrace — Отключает трассировку соединения с PostgreSQL
- pg_update — Обновление данных в таблице
- pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного
взаимодействия и сервера (если доступно)
Tony Murray ¶ 14 years ago
A simple conversion for 1D PostgreSQL array data:
// =====
//Example #1 (An array of IP addresses):
<?php
$pgsqlArr = '{192.168.1.1,10.1.1.1}';
preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
$phpArr = str_getcsv($matches[1]);
print_r($phpArr);
}
// Output:
// Array
// (
// [0] => 192.168.1.1
// [1] => 10.1.1.1
// )
// =====
// =====
// Example #2 (An array of strings including spaces and commas):
<?php
$pgsqlArr = '{string1,string2,"string,3","string 4"}';
preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
$phpArr = str_getcsv($matches[1]);
print_r($phpArr);
}
// Output:
// Array
// (
// [0] => string1
// [1] => string2
// [2] => string,3
// [3] => string 4
// )
// =====
abondi at ijk dot it ¶ 22 years ago
I've found another function to mimic the following mysql list tables function (http://www.php.net/manual/en/function.mysql-list-tables.php) that's more useful for my target:
function pg_list_tables() {
$sql = "SELECT a.relname AS Name
FROM pg_class a, pg_user b
WHERE ( relkind = 'r') and relname !~ '^pg_' AND relname !~ '^sql_'
AND relname !~ '^xin[vx][0-9]+' AND b.usesysid = a.relowner
AND NOT (EXISTS (SELECT viewname FROM pg_views WHERE viewname=a.relname));";
return(pg_query($conn, $sql));
}
daniel at bichara dot com dot br ¶ 23 years ago
Running RedHat Linux and Apache with suexec enabled you must include pgsql.so on each .php file using dl("pgsql.so") and remove "extension=pgsql.so" from php.ini, otherwise Apache (httpd) will not start.