Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции PostgreSQL

Postgres, разработанный в оригинале департаментом UC Berkeley Computer Science Department, был пионером многих объектно-ориентированных концепций, ставших теперь доступными в некоторых коммерческих БД. Он предоставляет поддержку языка SQL92/SQL99, целостности транзакций и расширяемости типов. PostgreSQL это открытый ресурс, потомок оригинального Berkeley-кода.

PostgreSQL database это открывает Source-продукт, доступный бесплатно. Для использования поддержки PostgreSQL вам необходим PostgreSQL 6.5 или новее. PostgreSQL 7.0 или новее - для всех возможностей модуля PostgreSQL. PostgreSQL поддерживает многие кодировки символов, включая кодировку многобайтных символов. Текущая версия и информация о PostgreSQL находятся на http://www.postgresql.org/.

Чтобы включить поддержку PostgreSQL, необходима опция --with-pgsql[=DIR] при компиляции PHP. Если модуль совместно используемых/shared объектов доступен, PostgreSQL-модуль может быть загружен с использованием директивы extension в файле php.ini или функции dl(). Поддерживаемые ini-директивы описаны в файле php.ini-dist, поставляемом вместе с исходным кодом дистрибутива.

Предупреждение!

Использование модуля PostgreSQL с PHP 4.0.6 не рекомендуется из-за бага в коде обработки уведомляющих сообщений. Используйте 4.1.0 или новее.


Предупреждение!

Имена PostgreSQL-функций будут изменены в релизе 4.2.0 для подтверждения соответствия существующим стандартам кодировки. Большая часть новых имён будет иметь дополнительные символы подчёркивания, например, pg_lo_open(). Некоторые функции переименовываются для обеспечения целостности. например, pg_exec() в pg_query(). Старые имена можно использовать в 4.2.0 и в некоторых релизах 4.2.0, но они могут быть удалены в будущем.

Таблица 1. Изменения имён функций
Старое имя Новое имя
pg_exec() pg_query()
pg_getlastoid() pg_last_oid()
pg_cmdtuples() pg_affected_rows()
pg_numrows() pg_num_rows()
pg_numfields() pg_num_fields()
pg_fieldname() pg_field_name()
pg_fieldsize() pg_field_size()
pg_fieldnum() pg_field_num()
pg_fieldprtlen() pg_field_prtlen()
pg_fieldisnull() pg_field_is_null()
pg_freeresult() pg_free_result()
pg_result() pg_fetch_result()
pg_loreadall() pg_lo_read_all()
pg_locreate() pg_lo_create()
pg_lounlink() pg_lo_unlink()
pg_loopen() pg_lo_open()
pg_loclose() pg_lo_close()
pg_loread() pg_lo_read()
pg_lowrite() pg_lo_write()
pg_loimport() pg_lo_import()
pg_loexport() pg_lo_export()

Старый синтаксис pg_connect()/ pg_pconnect() будет не рекомендован, с целью поддержки в будущем асинхронных соединений. Пожалуйста, используйте строку соединения для pg_connect() и pg_pconnect().

Не все функции поддерживаются во всех построениях/builds. Это зависит отверсии вашей libpq (The PostgreSQL C Client interface) и от того, как libpq скомпилирована. Если имеется отсутствующая функция, libpq не поддерживает возможности, требуемые для этой функции.

Важно также, чтобы вы использовали libpq более новую, чем PostgreSQL Server, с которым соединяетесь. Если вы используете libpq более старую, чем ожидает PostgreSQL Server, у вас будут проблемы.

Начиная с версии 6.3 (03/02/1998), PostgreSQL использует по умолчанию сокет домена unix. TCP-порт НЕ открывается по умолчанию. В таблице описаны эти новые возможности соединений. Этот сокет можно найти в in /tmp/.s.PGSQL.5432. Данная опция может быть включена флагом '-i' для postmaster, и его значением будет : "прослушивать TCP/IP-сокеты, а также сокеты Unix-домена".

Таблица 2. Postmaster и PHP
Postmaster PHP Статус
postmaster & pg_connect("dbname=MyDbName"); OK
postmaster -i & pg_connect("dbname=MyDbName"); OK
postmaster & pg_connect("host=localhost dbname=MyDbName"); Невозможно соединиться с PostgreSQL server: connectDB() терпит неудачу: Работает ли postmaster и принимает ли TCP/IP (with -i) соединение по 'localhost' и порту '5432'? в /path/to/file.php на строке 20.
postmaster -i & pg_connect("host=localhost dbname=MyDbName"); OK

Соединение с PostgreSQL-сервером может быть установлено следующими парами значений в командной строке: $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword ");

Предыдущий синтаксис: $conn = pg_connect ("host", "port", "options", "tty", "dbname") теперь не рекомендуется.

Переменные окружения влияют на поведение PostgreSQL server/client. Например, PostgreSQL-модель будет искать переменную окружения PGHOST, если hostname отсутствует в строке соединения. Поддерживаемые переменные окружения отличаются в разных версиях. См. детали в PostgreSQL Programmer's Manual (libpq - Environment Variables).

Убедитесь, что вы установили переменные окружения для соответствующего пользователя. Используйте $_ENV или getenv() для проверки того, какие переменные окружения доступны текущему процессу.

Пример 1. Установка параметров по умолчанию

PGHOST=pgsql.example.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP

export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING

Начиная работу с PostgreSQL 7.1.0, вы можете сохранять 1GB в поле типа text. В более старых версиях могут быть ограничения на размер блоков (по умолчанию было 8KB, максимум был 32KB, определяемые на этапе компиляции).

Для использования интерфейса больших объектов/large object (lo) необходимо включать lo-функции внутри блока транзакции. Блок транзакции начинается с SQL-оператора BEGIN, и, если транзакция была верной, заканчивается COMMIT или END. Если транзакция терпит неудачу, она должна быть закрыта с помощью ROLLBACK или ABORT.

Пример 2. Использование больших объектов (Large Objects)

<?php
    $database = pg_connect ("dbname=jacarta");
    pg_query ($database, "begin");
    $oid = pg_lo_create ($database);
    echo "$oid\n";
    $handle = pg_lo_open ($database, $oid, "w");
    echo "$handle\n";
    pg_lo_write ($handle, "large object data");
    pg_lo_close ($handle);
    pg_query ($database, "commit");
?>

Вы не должны закрывать соединение с PostgreSQL-сервером до закрытия large object.

Содержание

 
pg_affected_rows - возвращает количество задействованных записей (пар/tuples)
pg_cancel_query - отменяет async-запрос
pg_client_encoding - получает клиентскую кодировку
pg_close - закрывает a PostgreSQL-соединение
pg_connect - открывает a PostgreSQL-соединение
pg_connection_busy - получает, закрыто соединение или нет
pg_connection_reset - восстанавливает соединение (reconnect)
pg_connection_status - получает статус соединения
pg_convert - конвертирует значение ассоциативного массива в значение, подходящее для оператора SQL
pg_copy_from - вставляет записи в таблицу из массива
pg_copy_to - копирует таблицу в массив
pg_dbname - получает имя базы данных
pg_delete - удаляет записи
pg_end_copy - синхронизирует с PostgreSQL backend
pg_escape_bytea - мнемонизирует/еscape binary для типа bytea
pg_escape_string - мнемонизирует string для типа text/char
pg_execute - Посылает запрос выполнить готовую инструкцию с данными параметрами, и ждет результата
pg_fetch_all_columns - разбирает все строки в специфическом столбце результата как массив
pg_fetch_all - разбирает все строки из результата как массив
pg_fetch_array - извлекает ряд как массив
pg_fetch_assoc - разбирает строку как ассоциативный массив
pg_fetch_object - извлекает ряд как объект
pg_fetch_result - возвращает значения из результирующего ресурса
pg_fetch_row - получает ряд как перечислимый массив
pg_field_is_null - проверяет, является ли поле NULL
pg_field_name - возвращает имя поля
pg_field_num - возвращает номер именованного поля
pg_field_prtlen - возвращает печатаемый размер
pg_field_size - возвращает внутренний размер хранения именованного поля
pg_field_type - возвращает имя типа для соответствующего номера поля
pg_field_type_oid -  возвращает идентификатор типа (OID) для соответствующего номера поля
pg_free_result - освобождает результирующую память
pg_get_notify - получает предупреждающее сообщение SQL
pg_get_pid - получет бэкэнд идентификатора процесса
pg_get_result - получает результат асинхронного запроса
pg_host - возвращает имя хоста, ассоциированного с соединением
pg_insert - вставляет массив в таблицу
pg_last_error - получает строку последнего сообщения об ошибке соединения
pg_last_notice - возвращает последнее уведомление от PostgreSQL-сервера
pg_last_oid - возвращает oid последнего объекта
pg_lo_close - закрывает large object
pg_lo_create - создаёт large object
pg_lo_export - экспортирует large object в файл
pg_lo_import - импортирует large object из файла
pg_lo_open - открывает large object
pg_lo_read_all - читает весь large object и отправляет его браузеру
pg_lo_read - читает large object
pg_lo_seek - ищет позицию large object'а
pg_lo_tell - возвращает текущую позицию large object'а
pg_lo_unlink - удаляет large object
pg_lo_write - записывает large object
pg_metadata - получает метаданные для таблицы
pg_num_fields - возвращает количество полей
pg_num_rows - возвращает количество рядов
pg_options - получает опции, ассоциированные с данным соединением
pg_parameter_status - просматривает текущий параметр настройки сервера
pg_pconnect - открывает постоянное PostgreSQL-соединение
pg_port - возвращает номер порта, ассоциированного с соединением
pg_ping - пингует соединение с базой данных
pg_prepare -  посылает запрос создать готовую инструкцию с данными параметрами, и ждет завершения обработки
pg_put_line - отправляет NULL-законченную строку в PostgreSQL backend
pg_query - выполняет запрос
pg_query_params - посылает команду серверу и ожидает результат с возможностью передавать параметры отдельно от командного текста SQL.
pg_result_error - получает сообщение об ошибке, ассоциированное с результатом
pg_result_error_field - возвращает индивидуальное поле сообщения об ошибке
pg_result_seek - устанавливает внутреннее смещение строки в ресурсе результата
pg_result_status - получает статус результата выполнения запроса
pg_select - выбирает записи
pg_send_execute - посылает запрос выполнить готовую инструкцию с данными параметрами, не ожидая результата обработки
pg_send_prepare - посылает запрос создать готовую инструкцию с данными параметрами, не ожидая завершения обработки
pg_send_query - отправляет асинхронный запрос/query
pg_send_query_params -- отправляет запрос и разделяет параметры без ожидания ответа сервера и получения результата.
pg_set_error_verbosity - определяет многословие сообщений, возвращенных pg_last_error() и pg_result_error()
pg_set_client_encoding - устанавливает клиентскую кодировку
pg_trace - включает трассировку PostgreSQL-соединения
pg_transaction_status - возвращает текущее состояние сервера в-транзакции
pg_tty - возвращает tty-имя, ассоциированное с соединением
pg_untrace - отключает трассировку PostgreSQL-соединения
pg_unescape_bytea - unescape двоичный для типа bytea
pg_update - обновляет таблицу
pg_version - возвращает массив с клиентом, протоколом и версией сервера (когда доступны)
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS