Взаимодействие с базами данных
В дополнение к поддержке обычных драйверов ODBC, данная группа функций позволяет работать с базами данных, поддерживающими так называемый интерфейс Unified ODBC. В число БД, использующих API Unified ODBC, входят: Adabas D (http://www.adabas.com), IBM DB2 (http://www.ibm.com/db2), iODBC (http://www.iodbc.org), Solid (http://www.solidtech.com) и Sybase SQL Anywhere (http://www. sybase.com). Схемы работы с различными БД практически идентичны и различаются только в отношении внутреннего функционирования серверов БД. См. также раздел «Инсталляция в системах Unix» относительно конфигурирования поддержки этих БД при компиляции. Заметьте, что использование драйверов ODBC снижает производительность и не является оправданным, если, конечно, вы не планируете менять БД вашего приложения достаточно часто. Более обоснованно использовать первичные функции РНР интерфейса соответствующей БД. Но что касается БД с интерфейсом Unified ODBC, то здесь не используются сами ODBC драйверы, просто все они используют единую архитектуру API, аналогичную ODBC. odbc_connect Подключение к источнику данных (БД) int odbc_connect (string dsn. string user, string password [, int cursor J:ype]) Возвращает дескриптор подключения к БД (используемый последующими функциями) или О (FALSE) при ошибке. Одновременно можно открывать несколько подключений. В общем случае для открытия подключения необходимо указывать имя системного источника данных DSN, имя и пароль клиента. В Unix-системах иногда возникает проблема подключений, которая может быть устранена указали- ем параметров подключения в одной строке аргумента dsn в виде В необязательном четвертом аргументе можно указать тип курсора БД, и это часто помогает решить проблемы с некоторыми БД; например, при попытке выполнения хранимых процедур (при вызове которых возникает ошибка типа: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it"), и в таких случаях может помочь указание типа курсора SQL_CUR_ USE_ODBC. Тип курсора может быть указан одной из следующих констант:
odbc_pconnect Создание устойчивого подключения int odbc_pconnect (string dsn, string user, string password [, \ int cursor_type]) Возвращает дескриптор подключения к БД или FALSE — при ошибке. Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя источника данных, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. Но устойчивые подключения не работают, если РНР запускается в режиме CGI. odbc_close Закрытие сеанса подключения ODBC void odbc_close (int connection_id) Заметьте, при имеющихся незавершенных транзакциях функция не закрывает подключение. odbc_close_all Закрытие всех подключений ODBC void odbc_close_aTI(void); odbc_cursor Определение типа курсора для подключения string odbc_cursor (int result_id) Возвращает имя курсора, используемого в подключении result_ld. odbc_do Синоним odbc_exec int odbc_do (int conn_id, string query) odbc_exec Выполнение запроса SQL int odbc_exec (int connection_id, string query_string) Возвращает дескриптор набора записей, возвращенных запросом query_string, или FALSE — при ошибке. Параметр connectionjid должен быть ранее успешно возвращен функцией odbc_connect() или odbc_pconnect(). См. также: odbc_prepare() и odbc_execute(). odbc_prepare Подготовка запроса int odbc_prepare (int connection_id, string query_string)[ Функция возвращает дескриптор запроса, который затем исполь зуется в функции odbc_execute() для его исполнения, или FALSE — в случае ошибки. odbc_execute Выполнение подготовленного запроса int odbc_execute (int result_id [, array parameters_array]) Выполняет запрос resu1t_id, подготовленный функцией odbc_prepare(). Возвращает TRUE или FALSE — при ошибке. В массиве parameters_array можно указать параметры запроса, если они требуются. odbc_autocommit Переключение режима транзакций autocommit int odbc_autocommit (int connection_id [, int OnOff]) Если не указывается аргумент OnOff, функция возвращает текущее состояние auto-commit для подключения connection_id. True означает «разрешено», a FALSE — «не разрешено» или произошла ошибка. Если в значении аргумента OnOff указывается значение TRUE, то последующие запросы исполняются незамедлительно, если FALSE — то они откладываются до вызова функции odbc_commit() (таким образом формируя транзакцию). При этом возвращается TRUE или FALSE — при ошибке. По умолчанию вес запросы исполняются незамедлительно, и запрещение состояния auto-commit равносильно началу транзакции. См. также: odbc_commit() и odbc_rollback(). odbc_commit Завершение транзакции int odbc_commit (int connectiorMd) Выполняет все отложенные запросы (транзакцию) для подключения connectiorMd и возвращает TRUE или FALSE — при ошибке. odbc_rollback Отмена транзакции int odbc_rollback (int connection_id) Отменяет псе отложенные запросы (транзакцию) для подключения connection_id и возвращает TRUE или FALSE — при ошибке. odbc_num_rows Получение числа возвращенных записей int odbc_num_rows (int resulted) ; В аргументе указывается дескриптор результата, возвращенный ODBC ' запросом. При ошибке возвращается -1. Для запросов INSERT, UPDATE и DELETE возвращается число вставленных, измененных, удаленных записей; для запроса SELECT — число возвращенных запросом записей (некоторые драйверы возвращают -1 вне зависимости от того, сколько записей было возвращено). odbc_num_fields Определение числа полей в результате int odbc_num_fields (int result_id) В аргументе указывается дескриптор результата, возвращенный ODBC запросом (функцией odbc_exec()). Функция возвращает число полей (столбцов), содержащихся в наборе записей, возвращенных запросом, либо -1 в случае ошибки. Обработка полей LONGVARBINARY определяется odbc_binmode(). odbc_result Получение данных результата запроса string odbc_result (int result_id, mixed field) Возвращает содержимое поля, указанного аргументом field текущей записи. Поле может быть указано номером (начиная с 1) или именем: $item_3 = odbc_result ($Query_ID. 3); Данные полей типа long или двоичные данные возвращаются согласно установкам функций odbc_binmode() и odbcJongreadlen(). odbc_result_all Распечатка результата запроса в таблице HTML int odbc_result_all (int result_id [. string format]) Возвращает число выведенных записей или FALSE — при ошибке. В аргументе result_id указывается дескриптор набора записей, возвращенный функцией odbc_exec(), а в строке format можно указать атрибуты тега <TABLE ... >. odbc_fetch_row Установка курсора текущей записи int odbc_fetch_row (int resu!t_id [, int rowjiumber]) Выбирает запись номер rowjiumber (или по умолчанию следующую) . из набора записей resultjid, возвращенного функциями odbc_do() или odbcjaxec(). Возвращает TRUE или FALSE — при ошибке (например, когда записи с таким номером не существует). Последующие вызовы odbc_result() будут возвращать данные из выбранной записи. Нумерация начинается с 0. Не все драйверы допускают произвольный выбор записи. $сnn = odbc_conrect odbc_fetch_into Занесение полученной записи в массив int odbc_fetch_into (int result id [, int rownumber. array resu"lt_array]) Заносит поля записи номер rownumber из набора записей result_id в элементы массива resu"lt_array. Возвращает число полей набора записей (результата запроса) или FALSE — при ошибке. $cnn = odbc_connect odbc_ field_name Определение имени поля string odbc_field_name (int result_id, int field_number) Возвращает имя поля по его номеру field_number в наборе записей result_id. Нумерация начинается с 1. При ошибке возвращает FALSE. odbc_field_num Определение порядкового номера поля int odbc_field_num (int result_id, string field_name) Возвращает номер поля по его имени field_name в наборе записей result_id. Нумерация начинается с 1. При ошибке возвращает FALSE. odbc_field_type Получение типа данных поля string odbc_field_type (int resulted, int fieldjiumber) Возвращает SQL-тип поля с номером field_number в наборе записей result_id. Нумерация начинается с 1. При ошибке возвращает FALSE. odbc_field_len Получение длины (точности) поля int odbc_field_len (int resultjid, int fieldjiumber) См. также: odbc_field_scale(). odbc_field_precision Синоним odbc_fieldjen() string odbc_field_precision (int result_id, int field_number) odbc_field_scale Определение точности поля string odbc_field_scale (int result_id, int field_number) Функция возвращает число сохраняемых десятичных знаков после запятой для полей дробных чисел. odbc_free_result Освобождение ресурсов, занятых набором записей int odbcjreej-esult (Int result_id) Всегда возвращает TRUE. Поскольку при завершении сценария освобождаются вес выделенные ему ресурсы, использовать данную функцию имеет смысл только в случае крайней экономии памяти, расходуемой сценарием. Если транзакция была начата, но не завершена (см. odbc_autocommit()), данная функция отменяет ее. odbc_binmode Определение обработки двоичных полей int odbc_binmode (int result_id, int mode) Функция управляет обработкой полей ODBC SQL типов BINARY, VARBINARY, LONGVARBINARY. Если resultjd равен О, то установки будут применяться к новым наборам записей.
Пропуск (в нервом случае) означает, что при использовании функции odbc_fetch_into() для полей этого типа будет возвращаться nycтая строка. В последнем случае конвертация означает, что каждый байт данных будет представлен двумя шестнадцатсричными цифрами, например, двоичный байт 00000001 будет представлен как "01", а 11111111 — как "FF". Обработка длинных двоичных полей также зависит от параметра, установленного функцией odbcJongreadlen().
odbc_longreadlen Обработка полей LONG int odbc_longreadlen (int result_id, Int length) Функция управляет обработкой полей ODBC SQL типов LONG, LONGVARBINARY. В аргументе length указывается, сколько байтов следует возвращать из полей данных типов. По .умолчанию возвращается 4096 байтов. См. также odbc_binmode(). odbc_setoption Настройка параметров ODBC int odbc_setoption (int id. int function, int option, int parara) Если в аргументе function указывается значение 1, то тогда настраиваются параметры подключения (в этом случае в аргументе id необходимо указывать дескриптор подключения); если указывается 2, то настраиваются параметры запроса (тогда в id указывается настраиваемый запрос). Это позволяет устранить проблемы с некоторыми своеобразными драйверами ODBC. Конечно, вы должны понимать, какой эффект будет иметь установка того или иного параметра для конкретного драйвера. Пользуйтесь документацией ODBC и не забывайте, что 1 функциональность различных версий драйверов может различаться. Так как использование этой функции сильно зависит от специфики ODBC драйвера, использовать ее в публикуемых сценариях РНР не рекомендуется. Имейте также в виду, что некоторые параметры доступны только после открытия подключения или подготовки запроса. Аргумент option - номер устанавливаемого параметра, а рагат — ее значение. При ошибке возвращается FALSE; иначе TRUE. // Номер параметра SQL_AUTOCOMM!T odbc_tables Получение списка таблиц источника данных int odbc_tables (Int connection_id [, string qualifier [, string owner [, string name [, string table_type>) Возвращает в наборе записей перечисление имеющихся в источнике данных connection_id таблиц (определенного типа table_type). Возвращаемый набор записей содержит следующие ноля:
Возвращаемый набор записей сортируется в порядке: TABLE_TYPE, TABLE_ QUALIFIER, TABLEJJWNER, TABLE_NAME. Аргументы owner и name могут содержать шаблоны («%» заменяет ноль и более символов, а «_» — один символ). Чтобы получить перечисление возможных значений аргументов qua- / li-ficr, owner и table type, используется следующая семантика:
Если table_type не пустая строка, то она должна содержать перечисление через запятую типов запрашиваемых таблиц, (например, в виде: «'TABLE1.'VIEW'» или «TABLE, VIEW»). $rs = odbc_tables($cnn. "".""."%".
'TABLF" ): См. также odbc_tableprivileges(). odbc_tableprivileges Получение списка привилегий таблиц int odbc_tableprivileges (int connect1on_id [, string qualifier [, string owner [, string name]]]) Возвращает список таблиц и присвоенных им привилегий в наборе записей или FALSE при ошибке. Возвращаемый набор записей сортируется в порядке: TA8LEJUALIFIER, TA8LE_OWNER, TABLEJAME и содержит следующие поля:
Аргументы owner и name могут содержать шаблоны («%» заменяет .. ноль и более символов, а «_» — один символ). См. описание odbc tables(). odbc_statistics Получение описания таблицы int odbc_statisties (int connection_id, string qualifier, string owner, string tablejiame, int unique, int accuracy) Возвращает список таблиц и их индексов в наборе записей или FALSE — при ошибке. Возвращаемый набор записей сортируется в порядке: NONJJNIQUE, TYPE, INDEX_QUALIFIER, INDEXJAME и SEQ_IN_INDEX и содержит следующие ноля:
odbc_columns Перечисление полей заданной таблицы int odbc_columns (int connection_id [, string qualifier [, string owner [, string tablejiame [, string column_name>) Возвращает список полей таблицы table_name в наборе записей или FALSE — при ошибке. Возвращаемый набор записей сортируется в порядке: TABLE_QUALIFIER, TABLE_OWNER и TABLEJAME и содержит следующие поля:
Аргументы owner, tablejname и columnjiame могут содержать шаблоны («%» заменяет ноль и более символов, а «_» — один символ). См. также odbc_columnprivileges(). odbc_columnprivileges Перечисление полей заданной таблицы с их привилегиями int odbc_co1umnprivileges (int connection_id [, string qualifier [, string owner [, string table_name [, string column_name>) Возвращает список полей таблицы table_name в наборе записей или FALSE — при ошибке. Возвращаемый набор записей сортируется в порядке: TABLE_QUALIFIER, TABLE_OWNER и TABLE_NAME и содержит следующие поля:
Аргумент column_name может содержать шаблоны («%» заменяет ноль и более символов, а <<_» — один символ). odbc_gettypeinfo Определение типов поддерживаемых данных int odbc_gettypeinfo (Int connectien_id [, int data_type]) Возвращает набор записей, содержащий перечисление поддерживаемых БД типов данных; если необходимо выяснить, поддерживается ли конкретный тип данных, его необходимо указать в аргументе data_type. При ошибке возвращается FALSE. А В наборе записей возвращаются следующие поля:
Записи сортируются по полям DATA_TYPE и TYPE_NAME. odbc_primarykeys Подбор поля, способного быть первичным ключом таблицы int odbc_primarykeys (int connection_id, string qualifier, string owner, string table) Возвращает набор записей, содержащий список полей, которые могут претендовать на роль первичного ключа таблицы table. При ошибке возвращается FALSE. В наборе записей возвращаются следующие поля:
odbc_foreignkeys Получение списка внешних ключей int odbc_foreignkeys (int connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table) Если pk_table содержит имя таблицы, то функция возвращает набор записей, содержащий первичный ключ этой таблицы и все внешние ключи (foreign keys), которые на него ссылаются. Если fk_tab!e содержит имя таблицы, то функция возвратцает набор записей, содержащий все внешние ключи этой таблицы и корреспондирующие первичные ключи в других таблицах. Если и pk_table и fk_table содержат имена таблиц, функция возвращает внешний ключ таблицы fk_table, который указывает на первичный ключ в таблице pk_table. В возвращаемом наборе записей содержатся следующие поля:
odbc_procedures Получение списка хранимых процедур int odbc_procedures (int connection_id [, string qualifier [, string owner [, string name]]]) Возвращает список хранимых процедур name в наборе записей, содержащем следующие поля:
Аргументы owner и name могут содержать шаблоны («%» заменяет ноль и более символов, а «_» — один символ). odbc_procedurecolumns Получение списка параметров хранимых процедур int odbc_procedurecolumns (int connection_id [, string qualifier [, string owner [, string proc [, string column>) Возвращает список хранимых процедур (с их входными и выходными параметрами и описанием возвращаемых ими полей) в наборе записей, содержащем следующие поля:
Записи сортируются по полям PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME и COLUMNJYPE. Аргументы owner, ргос и column могут содержать шаблоны («%» заменяет ноль и более символов, а «_» — один символ). odbc_specialcolumns Получение списка специальных полей int odbc_specialcolumns (int connectionjd, int type. string qualifier, string owner, string table, int scope, int nullable) Если в аргументе type указано значение SQL_BEST_ROWID, возвращаются поля, уникально идентифицирующие каждую запись в таблице. Если в аргументе type указано значение SQLJ!OWVER, возвращаются оптимальные ноля, извлекая значения которых, можно уникально идентифицировать любую запись указанной таблицы (вне зависимости от изменений, производимых в таблице). Поля возвращаются в наборе записей (сортируемом по полю SCOPE), содержащем следующие ноля:
Эти функции позволяют работать с серверами БД MySQL. См. также документацию но адресу: http://www.mysql.com/documentation/. mysql_connect Подключение к серверу MySQL int mysql_connect ([string hostname[:port][:/path/to/socket] [, string username [, string password]]]) Возвращает дескриптор подключения к БД или FALSE — при ошибке. Обычно следующим шагом янляется выбор БД на сервере функцией mysql_selectjJb(). Для неуказанных аргументов используются следующие умолчания: host:port = 'localhost:3306', username = имя пользователя запустившего текущий процесс сервера password = ""; либо значения из файла конфигурации. Строка hostname может также включать номер порта (в виде "hostname: port") или путь к соксту для локальной машины в системах Unix":/path/to/socket". При ошибке также выдается предупреждение. Выдачу предуиреждения можно блокировать, указав перед именем функции оператор «@». Если функция повторно вызывается с теми же аргументами, новое подключение не создается, а возвращается идентификатор имеющегося. В конце сценария принято закрывать подключение функцией mysql_ close(), но это можно не делать, поскольку РHР автоматически закрывает все (неустойчивые) подключения при завершении сценария. <?php См. также: mysql_pconnect() и mysql_close(). mysql_pconnect Создание устойчивого подключения к серверу MySQL int mysql pconnect ([string hostname[ port][:/path/to/socket] [, string username [, string password]]]) Возвращает дескриптор подключения к БД или FALSE — при ошибке (также выдается предупреждение). Обычно следующим шагом является выбор БД на сервере функцией mysql_select_db(). Для неуказанных аргументов используются следующие умолчания: host:port = 'localhost:3306', username = имя пользователя запустившего текущий процесс сервера password = ""; либо значения из файла конфигурации. Строка hostname может также включать номер порта (в виде "hostname: port") или путь к соксту для локальной машины в системах Unix ":/path/to/socket". mysql_pconnect() действует подобно mysql_connect() с двумя отличиями.
mysql_close Отключение от сервера MySQL int mysql_close ([int 1ink_identifier]) : Возвращает TRUE или FALSE - при ошибке. Идентификатор закрываемого подключения указывается в аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения, созданные функцией mysql_ pconnect(), не закрываются. См. также: mysql_connect() и mysql pconnect(). tmysql_change_user Изменение параметров подключения int mysql_change_user (string user, string password [. string database [, int linkjidentifier]]) Если не указываются БД или подключение, то используется последняя активная БД. Если авторизация проходит безуспешно, параметры подключения не изменяются. Работает с MySQL 3.23.3 и выше. mysq_l list_dbs Получение списка БД на сервере MySQL int mysql_list_dbs ([int link_identifier]) Возвращает набор записей, содержащий список БД на сервере. Slink = mysql_connect В данном примере также может использоваться функция mysql_ fetch_row() или ей подобная. Заметьте: список можно получить, не имея привилегий, то есть не указывая пароль доступа. Ранее функция называлась mysq'Mistdbs(). mysql_db_name Получение имени БД из списка int mysql_db_name (int result, int row [, mixed field]) В аргументе result указывается дескриптор набора записей, полученный от функции mysql_list_dbs(). В аргументе row указывается номер записи. При ошибке возвращает FALSE. Фактически данная функция является излишней. <?php error_reportirg(E_ALL); Ранее функция называлась mysql_dbname(). mysql_select_db Выбор БД MySQL int mysql_select_db (string database_name [, int link_identifier]) Возвращает TRUE или FALSE — при ошибке. Устанавливает БД с именем database_name, активной для текущего или указанного в link_identifier подключения. Если подключений не имеется, то косвенно вызывается функция mysql_connect() с параметрами по умолчанию. Последующие запросы, выполняемые функцией, будут адресованы данной БД. См. также: mysql_connect(), mysqlj>connect() и mysql_query(). Ранее функция называлась mysql_selectdb(). mysql_create_db Создание БД MySQL int mysql_create_db (string dbnarae [, int link_identifier]) Создаст БД dbname, используя подключение link_identifier. <?php / Ранее функция называлась mysql_createdb(). См. также mysql_drop_db(). mysql_drop_db Удаление БД int mysql_drop_db (string databasejname [, int link_identifier]) Возвращает TRUE, если БД databasejiame успешно удалена, или FALSE — при ошибке. См. также mysql_create_db(). Ранее функция называлась mysql_dropdb(). mysql_ list_tables Получение списка таблиц в БД int mysql_list_tables (string database [. int linkjidentifier]) Возвращает набор записей, из которого можно извлечь имена таблиц функцией mysql_tablename(). Следующий пример распечатывает имена всех БД и таблиц, в них содержащихся. <? Ранее функция называлась mysql_listtables(). mysql_tablename Получение имени таблицы string mysql_tablename (int result, int i) Функция используется для получения имени таблицы (с номером i) из набора записей, возвращенного функцией mysql_list_tables(). <?php mysql_query Выполнение запроса к БД int mysql_query (string query [, int linkjdentifier]) Посылает запрос текущей БД, активной для текущего подключения или указанного в link_identifier. Если подключений не имеется, то косвенно вызывается функция mysql_connect() с параметрами по умолчанию. Заметьте: SQL-выражение, указанное в аргументе query, не должно оканчиваться точкой с запятой. Если выражение содержит ошибки или при его выполнении возникают ошибки (например, если текущие привилегии не позволяют выполнить запрос), то функция возвращает FALSE. Если запрос успешно выполнился, то возвращается набор записей (не забывайте, он также может содержать 0 записей), который может быть обработан функциями:
Чтобы выяснить, сколько записей было возвращено командой SELECT, используйте функцию mysql_num_rows(); а чтобы выяснить, сколько записей было изменено в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE, используйте функцию mysql_affected_rows(). После обработки результатов запроса он может быть удален функцией mysql_free_result(). Хотя в этом ист необходимости, так как ресурсы автоматически освобождаются при завершении сценария. См. также: mysql_db_query(), mysql_select_db() и raysql_connect(). mysql_db_query Выполнение запроса к указанной БД int mysql_db_query (string database, string query [, int linkjdentifier]) Функция эквивалентна последовательному выполнению функций: mysql_select_db (string database [. int linkjdentifier]); mysql_query (string query [. int link_identifier]}; См. также: mysql_db_query(), mysql_connect(). Ранее функция называлась mysql(). mysql_num_rows Получение числа возвращенных записей int mysql_num_rows (int result) Функция возвращает число записей, возвращенных командами SELECT. Чтобы выяснить, сколько записей было изменено в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE, используйте функцию mysql_affected_rows(). <?php См. также: mysql_db_query(), mysql_query() и mysql_fetch_row(). Ранее функция называлась mysql_numrows(). mysql_affected_rows Получение числа измененных записей в БД int mysql_affected_rows ([int link_iidentifier]) Возвращается число записей, измененных в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE. Если последним запросом была команда DELETE без ограничения WHERE, то из таблицы будут удалены все записи, но эта функция возвратит 0. Чтобы выяснить, сколько записей было возвращено командой SELECT, используйте функцию mysql_num_rows(). mysql_insert_id Получение значения последнего автоинкремента int mysqi_insert_id ([int link_identifier]) При добавлении записей в таблицу командой INSERT для поля, имеющего свойство AUTO_INCREMENT, значение генерируется автоматически (вне зависимости от того, было ли оно задано) и его можно получить с помощью этой функции. Это значение можно использовать для модификации последней добавленной записи. Это значение также можно получить с помощью SQL запроса MySQL: "SELECT LASTJNSERTJDO". Если последним запросом значение AUTO_INCREMENT сгенерировано не было, то функция возвратит 0. Заметьте также, что если тип автоин-крементируемого поля был BIGINT, то он будет преобразован к типу LONG, и результат может быть неверным. Команда LAST_INSERT_ID() имеет два преимущества: она всегда хранит значение последнего автоинкремента (это значение не сбрасывается в 0 между запросами) и она всегда возвращает правильное значение. mysql_data_seek Перемещение курсора набора записей int mysql_data_seek (int result_identifier, int rowjiumber) При каждом вызове функции mysql_fetch_row() (или подобной ей) внутренний курсор записи смешается на следующую запись. Данная функция позволяет свободно перемещать курсор в наборе записей result_identifier, так, чтобы он указывал на запись с номером row_ number (нумерация начинается с 0). Функция возвращает TRUE или FALSE — при ошибке. <?php mysql_free_result Уничтожение набора записей int mysql_free_result (int result) Функция освобождает память, занимаемую набором записей result, возвращенным запросом. Ее следует использовать только в том случае, если приходится очень экономить память, так как память автоматически освобождается при завершении сценария. Ранее функция называлась mysql_freeresult(). Обработка результатов запроса mysql_result Получение определенного элемента набора записей mixed mysql_result (int result, int row [, mixed field]) Возвращает содержимое ячейки из набора записей resul t. В аргументе row указывается номер записи (нумерация начинается с 0), в аргументе field можно указать индекс поля (число), имя поля или полное имя поля (вида: «имя_таблицы.имя_поля») или псевдоним поля (для запросов типа 'SELECT foo AS bar FROM...'). При работе с большими наборами записей быстрее выполняются функции типа _fetch_ (см. ниже). Также заметьте, что численные индексы обрабатываются быстрее строковых. Не следует вызывать функцию mysql_result() в сочетании с другими функциями обработки набора записей. Рекомендуется использовать альтернативные функции: mysql_fetch_ row(), mysql_fetch_array() и mysql_fetch_object(). mysql_fetch array Занесение записи в массив array mysql_fetch_array (int result [, int result_type]) Возвращает массив, соответствующий текущей записи, из набора записей result, возвращенных запросом, или FALSE, если записей более не имеется. Данная функция является расширением функции mysql_fetch_row(), и она может возвращать нумерованный или ассоциативный массив (а также объединенный). Вид возвращаемого массива может указываться в аргументе result_type одной из констант: MYSQL NUM, MYSQL_ ASSOC, MYSQL_BOTH (по умолчанию). В ассоциативных массивах индексами служат имена нолей. Если имеются одноименные поля, используется последнее. Для доступа к одноименным полям также можно использовать числовые индексы (поля нумеруются в той последовательности, в которой указаны в запросе или в таблице) или псевдонимы. SELECT tl.fl AS tl_fl t2.fi AS t2_fl FROM tl. t2 Заметьте, что функция работает лишь немного медленнее, чем mysql_ fetch_row(), но предоставляет дополнительную функциональность. <?php См. также: mysql_fetch_row() и mysql_fetch_assoc(). mysql_fetch_row Занесение записи в нумерованный массив array mysql_fetch_row (int result) Возвращает массив, соответствующий текущей записи, из набора записей result, возвращенных запросом (последующий вызов функции возвращает следующую запись), или FALSE, если записей более не имеется. Каждое поле записи сохраняется в нумерованном элементе массива (нумерация начинается с 0). См. также: mysql_fetch_array(), mysql_fetch_object(), mysql_data_seek(), mysql_fetch_lengths() и mysql_result(). mysql_fetch_assoc Занесение записи в ассоциативный массив array mysql_fetch_assoc (int result) Возвращает массив, соответствующий текущей записи, из набора записей result, возвращенных запросом, или FALSE, если записей более не имеется. Вызов функции эквивалентен mysql_fetch_array (result, MYSQL_ASSOC). В возвращаемом массиве индексами служат имена полей. Если имеются одноименные поля, используется последнее. Для доступа к остальным одноименным полям можно использовать псевдонимы или функцию raysql_fetch_array(). Заметьте, что функция работает лишь немного медленнее, чем mysql_ fetch_row(), но предоставляет дополнительную функциональность. <?php CM. также: mysql_fetch_row() и mysql_fetch_array(). mysql_fetch_object Получение записи в свойствах объекта object mysql_fetch_object (int result) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. По скорости выполнения функция идентична mysql_fetch_array() и почти идентична mysql_fetch_row(). <?php См. также: mysql_fetch_array() и mysql_fetch_row(). ImysqI_fetch_lengths Получение длины элементов записи array mysql_fetch_lengths (int result) После того как запись была обработана одной из функций: mysql_ fetch_row(), mysql_fetch_array() или mysql_fetch_object(), с помощью данной функции можно узнать размер полученного значения в каждом обработанном поле. Например, в следующем фрагменте: Srs_arr = mysql_fetch_row($rs): массив $rs_len будет содержать длину соответствующих элементов массива $rs_arr, то есть $rsjen[0] = strlen($rs_arr[0]) и т. д. См. также mysql_fetch_row(). mysql_fetch_field Получение информации о поле записи в свойствах объекта object mysql_fetch_field (Int result [, int field_offset]) Если номер поля field_offset не указан, при каждом вызове функции возвращаются свойства следующего поля из набора записей result. Возвращаемый объект имеет следующие свойства (и содержит информацию):
<?php / См. также mysql_field_seek(). mysql_field_seek Перемещение к указанному полю int mysql_field_seek (int result, int field_offset) Функция является излишней, и следующие фрагменты эквивалентны: $meta = mysql_fetch_field Эта функция влияет только на mysql_fetch_field(), а остальные функции этого рода (см. ниже) требуют явного указания номера поля. См. также mysql_fetch_field(). mysql_field_name Получение имени поля в наборе записей string mysql_field_name (int result, int fie!d_index) Функция возвращает имя поля с индексом field_offset (нумерация начинается с 0) в наборе записей result. $res = !nysql_db_query Ранее функция называлась mysql_fieldname(). mysql_field_table Получение имени таблицы, которой принадлежит поле из набора записей string mysql_field_table (int result, int field_offset) Ранее функция называлась mysqljfieldtable(). mysql_field_len Получение размера поля набора записей int mysql_field_len (int result, int field_offset) Ранее функция называлась mysql_fieldlen(). mysql_field_type Получение типа поля набора записей string mysql _field_type (int result, int field_offset) Возвращаемая строка содержит название типа ноля: «int», «real», «string», «blob» или другого, описанного в документации по MySQL. <?php Ранее функция называлась mysql_fieldtype(). mysql_field_flags Получение флагов поля записи string mysql_field_flags (int result, int field_offset) Поля записей в MySQL могут иметь следующие свойства-флаги: "notjiull", "pr1mary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp". Функция возвращает перечисление через пробел флагов, имеющихся у поля с индексом field_offset (нумерация начинается с 0) в наборе записей result (разделить полученную строку на составляющие можно функцией exptode()). Ранее функция называлась mysql_fieldflags(). mysql_list_fields Получение списка полей таблицы int mysql_list_fields (string database_name, string table_name [, int linkjidentifier]) Функция возвращает пустой набор записей таблицы table_name из БД database_name, который можно использовать для получения информации о всех полях, имеющихся в таблице, с помощью функций mysql_fetch_field(), mysql_field_flags(), mysql_fieldjen(), mysql_field_ name() и mysql_field_type(). Заметьте: при ошибке возвращается -1, а в переменной Sphperrmsg сохраняется сообщение об ошибке и (если функция не была вызвана с оператором @) распечатывается сообщение об ошибке. $link = mysql_cornect Ранее функция называлась mysql_listfields(). mysql_num_fields Получение числа полей в наборе записей int mysq"ljium_fields (int result) См. также: mysql_db_query(), mysql_query(), mysql_fetch_field(), mysql_ num_rows(). Ранее функция называлась mysqljiumfields(). mysql_errno Получение кода ошибки MySQL int mysql_errno ([int link_identifier]) Возвращает номер ошибки, произошедшей в ходе выполнения последней функции MySQL, или 0, если ошибки не произошло. Ранее ошибки, происходящие при операциях с MySQL, выдавались в виде предупреждений, но сейчас возникновение ошибок нужно выявлять самостоятельно. Предупреждения выводятся только при неудачных подключениях или при попытке использования несуществующего ресурса (например, набора записей). <?php См. также mysql_error(). mysql_error Получение сообщения об ошибке MySQL string mysql_error ([int link_identifier]) Возвращает сообщение об ошибке, произошедшей в ходе выполнения последней функции MySQL, или пустую строку, если ошибки не произошло. <?php См. также mysql_errno(). Данная группа функций позволяет работать с серверами БД mSQL. Для того чтобы их можно было использовать, РНР нужно скомпилировать с параметром —with-msql[=dir], где можно указать каталог размещения mSQL (по умолчанию это /usr/local/Hughes). Документацию но mSQL можно найти по адресу http://www.hughes. \ com.au/. msql_connect Подключение к серверу mSQL int msql_connect ([string hostname [, string hostname[:port] [, string user-name [, string passworo>] Возвращает дескриптор подключения к БД или FALSE — при ошибке. Если не указывается имя хоста, то производится локальное подключение. Если функция повторно вызывается с теми же аргументами, новое подключение не создается, а возвращается идентификатор уже имеющегося. В конце сценария принято закрывать подключение функцией msql_ close(), но этого можно и не делать, поскольку РНР автоматически закрывает все (неустойчивые) подключения при завершении сценария. См. также: msql_pconnect(), msql_close(). msql_pconnect Создание устойчивого подключения к серверу mSQL int msqlj>connect ([string hostname [, string hostname[:port] [, string username [, string password>) Возвращает дескриптор подключения к БД или FALSE — при ошибке. msql_pconnect() действует подобно msql_connect() с двумя отличиями: Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя сервера, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция msql_ close() не может закрыть подключения, созданные с помощью msql_ pconnect().) msql_close Отключение от сервера mSQL int msq]_close (int link_identifier) Возвращает TRUE или FALSE — при ошибке. Идентификатор закрываемого подключения указывается в аргументе link_identifier; если его не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Обратите внимание, что устойчивые подключения, созданные функцией msql_pconnect(), не закрываются. См. также: msql_connect() и msql_pconnect(). msql_list_dbs Получение списка БД на сервере mSQL int msq"Mist_dbs(void); Возвращает набор записей, содержащий список имеющихся БД на сервере. Используйте функцию msql_dbname(), чтобы получить элементы этого списка. msql_dbname Получение имени БД mSQL string msql_dbname (int query_identifier. int i) Функция используется для обработки набора записей query_identifier, возвращенного msqlJIistdbs(); в аргументе указывается номер записи. Возвращается имя БД или FALSE — при ошибке. Число записей можно определить функцией msql_numrows(). msql_create_db Создание БД mSQL int msql_create_db (string database name [, int link_identifier]) Создает БД dbname, используя подключение link_identifier. Функция имеет синоним msql_createdb(). См. также msql_drop_db(). msql_drop_db Удаление БД mSQL int msql_drop_db (string database_name, int link identifier) Возвращает TRUE, если БД databasejiame успешно удалена, или FALSE при ошибке. Функция имеет синоним msql_dropdb(). См. также msql_create_db(). msql_list_tables Получение списка таблиц в БД int msql_list_tables (string database) Возвращает набор записей, содержащий список БД на сервере. Для извлечения отдельных записей используется функция msql_tablename(). msql_tablename Получение имени таблицы string msql_tablename (int query_identifier, int i) Функция используется для получения имени таблицы (с номером ) из набора записей query_identifier, возвращенного функцией mysql_ Hst_tables(). <?php msql_select_db Выбор БД mSQL int msql_selectjjb (string database_name, int linkjdentifier) Возвращает TRUE или FALSE - при ошибке. Делает БД с именем databasejiame активной для текущего подключения или указанного в linkjdentifier. Если подключений не имеется, то косвенно вызывается функция mysql_connect() с параметрами по умолчанию. Последующие запросы, выполняемые функцией, будут адресованы данной БД. Функция имеет синоним msql_selectdb(). См. также: msql_connect(), msql_pconnect() и msql_query(). msql_regcase Создание регулярного выражения для поиска, нечувствительного к регистру См. также: sql_regcase(). msql_query Выполнение запроса к БД int rasql_query (string query, [int linkjdentifier]). Посылает запрос текущей БД, активной для текущего подключения или указанного в linkjdentifier. Если подключений не имеется, то косвенно вызывается функция msql_connect() с параметрами по умолчанию. Если выражение содержит ошибки или при его выполнении возникают ошибки (например, если текущие привилегии не позволяют выполнить запрос), то функция возвращает FALSE. Если запрос успешно выполнился, то возвращается набор записей (не забывайте, Он также может содержать 0 записей), который может быть обработан функциями:
Чтобы выяснить, сколько записей было возвращено командой SELECT, используйте функцию msql_num_rows(); а чтобы выяснить, сколько описей было изменено в результате выполнения запросов DELETE, PLACE или UPDATE, используйте функцию msql_affected_rows(). После обработки результатов запроса он может быть удален функцией mysql_free_result(). См. также: rasq(), msql_select_db() и msql_connect(). msql Выполнение запроса к указанной БД int msql (string database, string query, int link_identifier) Функция подобна msql_query() с тем отличием, что БД database, которой посылается запрос, здесь указывается явно. msql_num_rows Получение числа возвращенных записей int msql_num_rows (int queryjidentifier) Функция возвращает число записей, возвращенных запросом. См. также: msql(), msql_query() и msql_fetch_row(). msql_affected_rows Получение числа измененных записей в БД int msql_affected_rows (int query_identifier) Функция возвращает число записей, которых «коснулся» запрос (при выборке, удалении, обновлении). См. также msql query(). msql_result Получение элемента набора записей int msql_result (int query_identifier, int row, mixed field) Возвращает содержимое ячейки из набора записей query_identifier. В аргументе row указывается номер записи (нумерация начинается с 0), в аргументе field можно указать индекс поля (число), имя поля, полное имя поля (вида: «имя_таблицы.имя_поля») или псевдоним поля. При работе с большими наборами записей быстрее выполняются функции типа _fetch_ (см. ниже). Также заметьте, что численные индексы обрабатываются быстрее строковых. Не следует вызывать функцию msql_result() в сочетании с другими функциями обработки набора записей. Рекомендуется использовать альтернативные функции: msql_fetch_ row(), msql_fetch_array() и msql_fetch_object(). msql_data_seek Перемещение курсора набора записей int msql_data_seek (int query_identifier. int rowjnumber) При каждом вызове функции msql_fetch_row() (или подобной ей) внутренний курсор записи смещается на следующую запись. Данная функция позволяет свободно переметать курсор в наборе записей query_identifier так, чтобы он указывал на запись с номером row_ number (нумерация начинается с 0). Функция возвращает TRUE пли FALSE — при ошибке. См. также msql_fetch_row(). msql_fetch_array Занесение записи в массив int msql_fetch_array (int query_identifier [, int result_type]) Возвращает соответствующий текущей записи массив из набора записей query_identifier, возвращенных запросом, или FALSE, если записей более не имеется. Данная функция является расширением функции msql_fetch_row(); она может возвращать нумерованный или ассоциативный массив (или объединенный). Вид возвращаемого массива может указываться в аргументе resultjtype одной из констант: MYSQL_NUM, MYSQL_ASSOC, MYSQL_BOTH (по умолчанию). В ассоциативных массивах индексами служат имена нолей. Если имеются одноименные поля, используется последнее. Для доступа к одноименным полям также можно использовать числовые индек-т сы (поля нумеруются в той последовательности, в которой указаны в запросе или в таблице) или псевдонимы. Заметьте, что функция работает лишь немного медленнее, чем mysql_ fetch_row(), но предоставляет дополнительную функциональность. Будьте внимательны с обработкой записей, которые содержат единственное поле, имеющее значение 0 (или пустую строку, или NULL). См. также msql_fetch_row(). msql_fetch_row Занесение записи в нумерованный массив array msql_fetch_row (int query_identifier) Возвращает соответствующий текущей записи массив из набора записей query_identifier, возвращенных запросом (последующий вызов функции возвращает следующую запись), или FALSE, если записей более не имеется. Каждое поле записи сохраняется в нумерованном элементе массива (нумерация начинается с 0). См. также: msql_fetch_array(), msq()_fetch_object(), msql_data_seek() и msql_result(). msql_fetch_object Получение записи в свойствах объекта int msql_fetch_object (int query_identifier [, int resul t_type]) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. По скорости выполнения функция идентична mysql_fetch_array() и почти идентична mysql_fetch_row(). См. также: msql_fetch_array() и msq"l_fetch_row(). msql_fetch_field Получение информации о поле записи в свойствах объекта object msql_fetch_field (int query_identifier, Int field_offset) Если номер поля fi el d_offset не указан, при каждом вызове функции возвращаются свойства следующего поля из набора записей query_ identifier. Возвращаемый объект имеет следующие свойства (и содержит информацию):
См. также msql_field_seek(). msql_field_seek Перемещение к указанному полю int msql_field_seek (int query_identifier, int field_offset) Последующий вызов msql_fetch_field() (если в нем не указан номер поля) будет возвращать информацию о поле с указанным номером field_offset. См. также msql_fetch_field(). msql_fieldname Получение имени поля в наборе записей string msql_fieldname (int query_identifier, int field) Функция возвращает имя ноля с индексом field в наборе записей query_identifier. msql_fieldtable Получение имени таблицы, которой принадлежит поле из набора записей int msql_fieldtable (int query_identifier, int field) msql_fieldtype Получение типа поля набора записей string rasql_fieldtype (int query_identifier, int i) Возвращаемая строка содержит название тина поля: «int», «real», «string», «blob» или другого, описанного в документации. msql_fieldflags Получение флага поля записи string msql_fieldflags (int query_identifier, int i) Поля записей в mSQL Moiyr иметь два флага: «notjiull», «primary_key». Функция возвращает перечисление через пробел флагов, имеющихся у поля с индексом i (нумерация начинается с 0) в наборе записей query_identifier (разделить полученную строку на составляющие можj но функцией explode()). Если поле флагов не имеет, возвращается пустая строка. msql_fieldlen Получение размера поля набора записей int msql_fieldlen (int query_identifier, int i) msql_free_result Уничтожение набора записей int msql_free_result (int query_identifier) Функция освобождает память, занимаемую набором записей query_ identifier, возвращенным запросом. msql_fist fields Получение перечисления полей в результате запроса int msql_list_fields (string database, string tablename) Функция возвращает пустой набор записей таблицы tablename из БД database, который можно использовать для получения информации о всех полях, имеющихся в таблице, с помощью функций: msql_ fetch_field(), msql_field_flags(), mysql_field_len(), mysql_field_name() и mysql_field_type(). Заметьте: при ошибке возвращается -1, а в переменной Sphperrmsg сохраняется сообщение об ошибке и (если функция не была вызвана с оператором «@») распечатывается сообщение об ошибке. См. также msql_error(). msql_num_fields Получение числа полей в наборе записей int msql_num_fields (int queryjidentifier) См. также: msq(), msqljjuery(), msql_fetch_field() и msql_num_rows(). Ранее функция называлась msqljiumfields(). msql_error Получение сообщения об ошибке последней функции msql string_msql_error () Возвращает сообщение об ошибке, произошедшей в ходе выполнения последней функции mSQL, или пустую строку, если ошибки не произошло. Раисе ошибки, происходящие при операциях с MySQL, выдавались в виде предупреждений, но сейчас возникновение ошибок нужно выявлять самостоятельно. Postgres, изначально разработанная в UC Berkeley Computer Science Department, явилась одной из первых БД, использующих объектно-реляционные принципы, доступные теперь в некоторых коммерческих БД. Она поддерживает язык SQL92/SQL3, транзакции и расширение типов. PostgreSQL распространяется бесплатно и с открытым кодом. См.: http://www.postgresql.org/. Начиная с версии 6.3 (03/02/1998). PostgreSQL использует соксты unix-доменов (адрес сокета записывается в файл /tmp/.s.PGSQL5432). Чтобы к серверу можно было подключиться через TCP/IP, postmaster необходимо запускать с ключом -i (дословно означающим: "listen on TCP/IP sockets as well as Unix domain sockets"). Ранее в функции подключения параметры указывались в отдельных аргументах, но сейчас они заключаются в одну строку: Scorn = pg_Connect Для использования функций интерфейса больших объектов их необходимо помещать внутрь блоков транзакций. Блок транзакции начинается с команды begin и завершается командами commit или end. Отмена транзакций выполняется командами rollback или abort. <?php pg_connect Подключение к серверу PostgreSQL int pg_connect (string conn_string) Возвращает дескриптор подключения к БД (используемый последующими функциями) пли FALSE — при ошибке. В аргументе указываются параметры подключения: host, port, tty, options, user, password, dbname. <?php Устаревший синтаксис: Sconn = pg_connect См. также pg_pconnect(). pg_close Закрытие подключения bool pg_close (int connection) Закрывает указанное подключение и возвращает TRUE (или FALSE при ошибке). Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте, что устойчивые подключения, созданные функцией рд_ pconnect(), не закрываются. pg_pconnect Создание устойчивого подключения к серверу PostgreSQL int pg_pconnect (string conn_string) Возвращает дескриптор устойчивого подключения к БД (используемый последующими функциями) или FALSE — при ошибке. В аргументе указываются параметры подключения: host, port, tty, options, user, password, dbname. Заметьте: устойчивые подключения не закрываются при завершении сценария и остаются действительными, пока РНР остается в памяти (так, что при повторной попытке создать идентичное устойчивое подключение используется уже имеющееся). Устаревший синтаксис: Sconn = pg_pconnect См. также pg_connect(). pg_host Получение имени сервера, к которому осуществлено подключение String pg_host (int connection_id) Возвращает значение параметра host, указанного при подключении. pg_port Получение номера порта, используемого подключением int pg_port (int connectionjid) Возвращает значение параметра port, указанного при подключении (или «5432»). pg_tty Получение имени терминала TTY, назначенного подключению string pgjtty (int connection_id) Возвращает имя потока вывода, в который сервер записывает отладочную информацию для указанного подключения. pg_options Получение параметра подключения string pg_options (int connection_id) pg_dbname Получение имени используемой БД string pg_dbname (int connection) При ошибке возвращает FALSE. pg_set_client_encoding Установка кодировки, используемой клиентом int pg_set_client_encoding ([int connection, string encoding]) Возвращает 0 или -1 — при ошибке, encoding может принимать значения: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=l.. .9), KOI8, WIN, ALT, SJIS, BIGS, WIN1250. Функция требует PostgreSQL 7.0 или старше. Ранее функция называлась pg_setclientencoding(). См. также pg_client_encoding(). pg_client_encoding Получение кодировки, используемой клиентом string pg_client_encoding ([int connection]) Возвращается одно из значений: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULEJNTERNAL, LATINX (X=l.. .9), KOI8, WIN, ALT, SJIS, 6165, WIN1250. Функция требует PostgreSQL 7.0 или старше. Ранее функция называлась pg_clientencoding(). См. также pg_set_client_encoding(). pg_trace Разрешение трассировки подключения bool pgjtrace (string filename [, string mode [, int connection]]) Функция разрешает автоматическую запись обмена сообщениями между сервером PostgreSQL и его клиентской частью в файл отладки filename. Чтобы использовать эту возможность, необходимо понимать внутренний протокол коммуникации PostgreSQL. В простейшем случае причины ошибок, записанные в этом файле, могут быть найдены с помощью команды: backend trace.log. Аргументы filename и mode те же, что и в функции fopen() (mode no умолчанию: «w»), connection указывает, какое подключение следует трассировать (если не указано, то используется последнее открытое). Возвращает TRUE, если filename успешно открыт, или FALSE — при ошибке. См. также: fopen() и pg_untrace(). pg_untrace Запрет трассировки подключения bool pg_untrace ([int connection]) Останавливает отладку, начатую функцией pg_trace(). Аргумент connection указывает, какое подключение следует трассировать (если не указано, то используется последнее открытое). Всегда возвращает TRUE. См. также pgjtrace(). pg_exec Выполнение запроса int pg_exec (int connection, string query) Посылает запрос query для подключения connection. Если при выполнении запроса возникают ошибки, то функция возвращает FALSE. Получить комментарий ошибки можно функцией рд_ errormessage(). Если запрос успешно выполнился, то возвращается набор записей, который может быть обработан функциями:
Чтобы выяснить, сколько записей было возвращено командой SELECT, используйте функцию pg_num_rows(); а чтобы выяснить, сколько записей было изменено в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE, используйте функцию pg_cmdtuples(). После обработки результатов запроса он может быть удален функцией pg_free_result(). Хотя в этом нет необходимости, так как ресурсы автоматически освобождаются при завершении сценария. pg_put_line Пересылка серверу строки boo! pg_put_line ([resource connection_id. string data]) Для ускорения процедуры занесения информации в БД PostgreSQL позволяет метод непосредственной пересылки строк через поток ввода-вывода. Возвращает TRUE или FALSE — при ошибке. Конец строки (записи БД) маркируется символом «\n», а поля разделяются знаком табуляции «\t». Приложение должно явно послать пару символов «\.» для указания, что клиент закончил отсылать данные. <?php // скоростное добавление См. также pg_end_copy(). pg_end_copy Синхронизация операции вставки boo! pg_end_copy ([resource connection]) Функцию следует вызывать после того, как функцией pg_put_line() завершена передача данных серверу PostgreSQJL (для того, чтобы зафиксировать полученные данные). Возвращает TRUE или FALSE — при ошибке. См. также pg_put_line(). pg_numrows Получение числа возвращенных записей int pg_numrows (int result_id) Возвращает число записей, возвращенных запросами SELECT. Дескриптор набора возвращенных записей (аргумент result_id) должен быть у получен от функции рд_ехес(). pg_numfields Получение числа полей в наборе записей int pgjiumfields (int result_id) Возвращает число полей (столбцов) в наборе записей, возвращенном функцией рд_ехес(), или -1 — при ошибке. pg_cmdtuples Получение числа измененных записей в БД int pg_cmdtuples (int result_id) Возвращается число записей (сущностей), измененных в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE. Если изменений произведено не было, возвращает 0. <?php pg_freeresult Уничтожение набора записей Int pg_freeresult (int result_id) Функция освобождает память, занимаемую набором записей resultjid, возвращенным запросом. Ее следует использовать только в случае, если требуется экономить память, так как память автоматически освобождается при завершении сценария. pg_result Получение определенного элемента набора записей mixed pg_result (int result_id. int rowjiumber, mixed fieldname) Функция возвращает значение из набора записей, возвращенного функцией рд_Ехес(). Аргументы row_number и fieldname указывают соответственно номер строки (записи) и ноле (столбец). Нумерация начинается от 0. Поле можно указывать его именем или номером. PostgreSQL имеет много встроенных типов данных, и РНР поддерживаются только основные. Тины integer, boolean и old возвращаются как целочисленные значения. Все формы float и real типов возвращаются как дробные значения. Все остальные типы (включая массивы) возвращаются в виде строк в том же формате, что и в программе psql. pg_fetch_array Занесение записи в массив array pg_fetch_array (int result, int row [.int result_type]) Возвращает массив, соответствующий записи с номером row, из набора записей result, возвращенных запросом, или FALSE, если такой записи не имеется (также выдается предупреждение). Данная функция является расширением функции pg_fetch_row(), она может возвращать нумерованный или ассоциативный массив (а также объединенный). Вид возвращаемого массива может указываться в аргументе resu1t_type одной из констант: PGSQL_NUM, PGSQL_ASSOC, PGSQL_BOTH (по умолчанию). В ассоциативных массивах индексами служат имена полей (они всегда в нижнем регистре). Заметьте, что функция выполняется лишь немного медленнее, чем pg_fetch_row(), но предоставляет дополнительную функциональность. <?php См. также pg_fetch_row(). pg_fetch_row Занесение записи в нумерованный массив array pg_fetch_row (int result, int row) Возвращает массив, соответствующий записи с номером row, из набора записей result, возвращенных запросом, или FALSE, если такой записи не имеется. <?php См. также: pg_fetch_array(), pg_fetch_object(), pg_result(). pg_fetch_object Получение записи в свойствах объекта object pg_fetch_object (int result, int row [, int resultjtype]) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. По скорости выполнения функция идентична pg_fetch_array() и почти идентична pg_fetch_row(). <?php Sdatabase = "verlag". См. также: pg_fetch_array() и pg_fetch_row(). pg-fieldname Определение имени поля string pg_fieldname (int resulted, int field_number) Возвращает имя поля по его номеру в наборе записей. Нумерация начинается с 0. pg_fieldnum Определение номера поля int pg_fieldnum (int result_id, string fieldjiame) Возвращает номер поля в наборе записей по его имени или -1 — при ошибке. pg_fieldtype Определение типа поля string pg_fieldtype (int resu1t_id, ijit field_number) pg_fieldprtlen Определение длины значения в поле int pg_fie!dprtlen (int result_id, int row_number, string field_name) Возвращает фактическую длину содержащегося в поле значения в байтах (число символов). Возвращает -1 при ошибке. pg_fieldsize Определение внутреннего размера поля int pg_fieldsize (int result_id, int field_number) Возвращает размер в байтах или значение -1 для полей переменной длины. При ошибке возвращается FALSE. pg_fieldisnull Определение равенства значения поля NULL int pg_fieldisnull (int resultjid, int row, mixed field) Возвращает О, если поле field в записи row не содержит значение NULL, или 1 в противном случае. Поле может быть указано именем или номером. pg_getlastoid Получение идентификатора последнего объекта int pg_getlastoid (int result_id) Используется для получения идентификатора (oid) назначенному объекту, вставленному последней SQL-командой INSERT в функции рд_ехес(). Возвращает положительное значение oid или -1, если последней командой в рд_ехес() не была INSERT. pg_locreate Создание большого объекта int pgjocreate (int conn) Создает «Inversion Large Object» и возвращает его oid. conn содержит дескриптор подключения. Режимы доступа PostgreSQL INV_READ, INV_WRITE и INV_ARCHIVE не поддерживаются, объект всегда создается с доступом для чтения и записи. INV_ARCHIVE был удален из самого PostgrcSQL (для версий 6.3 и старше). pg_loopen Открытие большого объекта int pgjoopen (int conn, int objoid, string mode) Открывает большой объект БД «Inversion Large Object» и возвращает его файловый дескриптор. Аргумент objoid указывает действительный oid (идентификатор объекта), a mode — режим доступа, который может принимать значения «г», «w» или «rw». Не закрывайте подключения, не закрыв предварительно большой объект. pg_loclose , Закрытие большого объекта void pgjoclose (int fd)' В аргументе fd указывается дескриптор объекта, полученный от рд_ loopen(). pg_loimport Импорт большого объекта из файла int pgjoimport (int file [, int connection_id]) Имя импортируемого файла (путь) указывается в аргументе filename. Возвращает идентификатор созданного объекта (oid) или FALSE -при ошибке. Не забывайте, что работа с большими объектами должна проходить внутри транзакции. pg_loexport Экспорт большого объекта в файл boo! pgjoexport (int oid, int file [, int connectionjd]) Имя файла (путь) указывается в аргументе filename, а идентификатор объекта — в oid. Возвращает TRUE или FALSE — при ошибке. Не забывайте, что работа с большими объектами должна проходить внутри транзакции. pg_loread Чтение большого объекта string pgjoread (int fd, int Ten) Возвращает прочитанную из объекта строку, указанную его дескриптором fd. В аргументе 1еп указывается максимальная длина возвращаемой строки. pg_loreadall Создание большого объекта и отсылка его содержимого непосредственно в поток вывода (браузеру) void pgjoreadall (int fd) Используется в основном для вывода двоичных данных (графики и звука). pg_lowrite Запись большого объекта int pgjowrite (int fd, string buf) Записывает данные из буфера buf в объект, указанный дескриптором fd; возвращает число фактически записанных байтов или FALSE — при ошибке. pg_lounlink Удаление большого объекта void pgjounlink (int conn, int lobjid) pg_errormessage Получение последнего сообщения об ошибке string pg_errormessage (int connection) Ранее для доступа к Microsoft SQL 6.5 и 7.0 использовались разные модули, но теперь они объединены в один. mssql_coonnect Подключение к серверу MS SQL int mssql_connect ([string servername [, string user-name [, string password]]]) Возвращает дескриптор подключения к серверу MS SQL или FALSE — при ошибке. Аргумент servernane должен быть действительным именем, определенным в файле interfaces. Если функция повторно вызывается с теми же аргументами, новое подключение не создается, а возвращается идентификатор имеющегося. Подключение к серверу закрывается при завершении сценария или ранее, если явно вызывается функция mssql_close(). См. также: mssql_pconnect(), mssql_close(). mssql_close Закрытие подключения к MS SQL Server int mssql_close ([int link_identifier]) Возвращает TRUE или FALSE — при ошибке. Идентификатор закрываемого подключения указывается в аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения, созданные функцией mssql_pconnect(), не закрываются. См. также: mssql_connect(), mssql_pconnect(). mssql_pconnect Создание устойчивого подключения к серверу MS SQL int mssqljiconnect ([string server-name [, string username [. string password]]]) Возвращает дескриптор устойчивого подключения или FALSE — при ошибке. Mssql_pconnect() действует подобно Mssql_connect() с двумя отличиями. Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя сервера, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция mssql_ close() не может закрыть подключения, созданные с помощью mssql_ pconnect().) mssql_select_db Выбор БД MS SQL int mssql_select_db (string databasejiame [. int linkjidentifier]) Возвращает TRUE или FALSE — при ошибке. Устанавливает БД с именем database_name, активной для текущего подключения или указанного в link_iidentifier. Если подключений не имеется, то косвенно вызывается функция mssql_connect() с параметрами по умолчанию. Последующие запросы, выполняемые функцией, будут адресованы данной БД. См. также: mssql_connect(), mssql_pconnect() и mssql_query() mssql_query Выполнение запроса к БД int rassql_query (string query [, int 1ink_identifier]) Посылает запрос текущей БД, активной для текущего (последнего открытого) подключения пли указанного и link_identifier. Если подключений не имеется, то косвенно вызывается функция mssql_connect() с параметрами по умолчанию. Возвращает дескриптор набора возвращенных записей или FALSE — при ошибке. См. также: mssql_select_db() и mssql_connect(). mssql_num_rows Получение числа возвращенных записей int mssql_num_rows (string result) Возвращает число записей в наборе result, возвращенном функцией mssql_query(). См. также: mssql_query() и mssql_fetch_row(). В текущей реализации модуля отсутствует функция mssql _affected_ rows(), и для того, чтобы выяснить, сколько записей было изменено командами UPDATE, INSERT или DELETE, приходится использовать подобный следующему код: SrsRows = mssql_query mssql_free_result Уничтожение набора записей int mssql_free_result (int result) Функция освобождает память, занимаемую возвращенным запросом, набором записей result. Ее следует использовать только в случае, если требуется экономить память, так как память автоматически освобождается при завершении сценария. mssql_result Получение определенного элемента набора записей int mssql result (Int result, int l, mixed field) Возвращает содержимое ячейки из набора записей result. В аргументе row указывается номер записи (нумерация начинается с 0), в аргументе field можно указать индекс поля (число), имя поля, полное имя поля (вида: «имя_таблицы.имя_поля») или псевдоним поля (для запросов типа 'SELECT foo AS bar FROM...'). При работе с большими наборами записей быстрее выполняются функции типа _fetch_ (см. ниже). Также заметьте, что численные индексы обрабатываются быстрее строковых. Не следует вызывать функцию mysqljresult() в сочетании с другими функциями обработки набора записей. Рекомендуется использовать альтернативные функции: mssql_fetch_ row(), mssql_fetch_array() и mssql_fetch_object(). mssql_data_seek Перемещение внутреннего указателя записи int mssql_data_seek (int resul ^identifier, int rowjnumber) При каждом вызове функции mssql_fetch_row() (или подобной ей) внутренний курсор записи смещается на следующую запись. Данная функция позволяет свободно перемещать курсор в наборе записей result_identifier так, чтобы он указывал на запись с номером row_ number (нумерация начинается с 0). Она возвращает TRUE или FALSE — при ошибке. См. также mssql_data_seek(). mssql_fetch_array Занесение записи в массив array mssql_fetch_array (int result) Возвращает массив, соответствующий текущей записи из набора записей result, возвращенных запросом, или FALSE, если записей более не имеется (при этом курсор записи перемещается на следующую). Данная функция является расширением функции mysql_fetch_row(), и она возвращает объединенный нумсрованно-ассоциативный массив. Доступ к элементам массива может осуществляться как через имена полей, так и по их номеру. Заметьте, что функция выполняется немного медленнее, чем mysql_ fetch_row(), но предоставляет дополнительную функциональность. См. также mssql_fetch_row(). mssql_fetch_row Занесение записи в нумерованный массив array mssql_fetch_row (int result) Возвращает соответствующий текущей записи массив из набора записей result, возвращенных запросом (последующий вызов функции возвращает следующую запись), или FALSE, если записей более не имеется. Каждое поле записи сохраняется в нумерованном элементе массива (нумерация начинается с 0). См. также: mssql_fetch_array(), mssql_fetch_object(), mssql_data_seek(), mssql_fetch_length() и mssql_result(). mssql_fetch_object Получение записи в свойствах объекта int mssql_fetch_object (int result) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. По скорости выполнения функция идентична mysql_fetch_array() и почти идентична mysql_fetch_row(). См. также: mssql_fetch_array() и mssql_fetch_row(). mssql_num_fields Получение числа полей в наборе записей int mssql_num_fields (int result) См. также: mssql_query(), mssql_fetch_field() и mssql_num_rows(). mssql_fetch_field Получение информации о поле записи в свойствах объекта object mssql_fetch_field (int result [. int field_pffset]) Если номер поля field_offset не указан, при каждом вызове функции возвращаются свойства следующего поля из набора записей result. Возвращаемый объект имеет следующие свойства (и содержит информацию):
См. также mssql_field_seek(). mssql_field_seek Перемещение к указанному полю int mssql_field_seek (int result, int field_offset) Перемещается к указанному числом полю. И, если при следующем вызове mssql_fetch_field() не указывается номер поля, будет возвращено это поле. См. также mssql_fetch_field(). mssql_field_name Получение имени поля в наборе записей int mssql_field_name (int result [, int offset]) mssql_field_length Получение размера поля набора записей int mssql_fieldjength (int result [, int offset]) mssql_field_type Получение типа поля набора записей string mssql_field_type (int result [, int offset]) mssql_get_last_message Получение последнего сообщения сервера string mssql_getjast_message (void) mssql_min_error_severity Установка минимального уровня сообщаемых ошибок void rassql_min_error_severity (int severity) mssql_min_message_severity Установка минимального уровня сообщений void mssql_min_message_severity (int severity) InterBase (http://www.interbase.com/) — популярная БД, производимая Borland/Inprise. Последняя версия InterBase 6 распространяется бесплатно. Эта БД использует одинарные кавычки (') для цитирования но аналогии с БД Sybase, если в файл php.ini добавить параметр: magic_quotes_sybase = On ibase_connect Подключение к серверу БД InterBase int ibase_connect (string database [, string user-name [, string password [, string charset [, int buffers [, int dialect [. string role>]]) Аргумент database должен указывать путь к файлу БД на сервере. Если сервер не локальный, то должен присутствовать префикс: «hostname:» (TCP/IP), «//hostname/» (NetBEUI) или «hostname®» (IPX/SPX), в зависимости от используемого протокола, user-name и password также могут быть указаны параметрами конфигурации PHP ibase. default_user и ibase.default_password. charset определяет кодировку, используемую БД но умолчанию, buffers — число буферов, используемых для кэширования БД (при значении 0 или отсутствии указания сервер будет использовать собственное значение), dialect указывает используемый подключением диалект SQL (по умолчанию — самый старший, поддерживаемый клиентской частью). ibase_connect('local host:/usr/db/db.gdb'.'SYSDBA'.'masterkey'. ' IS08859J'. '100'. '1' ) ; Если функция повторно вызывается с теми же аргументами, новое подключение не создается, а возвращается идентификатор имеющегося. В конце сценария принято закрывать подключение функцией ibase_ close(), но этого можно не делать, поскольку РНР автоматически закрывает все (неустойчивые) подключения при завершении сценария. <?php См. также ibase_pconnect(). ibase_close Отключение от сервера БД InterBase int ibase_close ([int connection_id]) Возвращает TRUE или FALSE — при ошибке. Текущая транзакция (если имеется) завершается, а остальные отменяются. Идентификатор закрываемого подключения указывается в .аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение. фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения, созданные функцией mysql_ pconnect(), не закрываются. ibase_pconnect Создание устойчивого подключения к серверу БД InterBase int ibase_pconnect (string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role>]]) ibase pconnect() действует подобно ibase_connect() с двумя отличиями. Перед подключением функция пытается проверить, имеется ли уже , открытое (устойчивое) подключение с параметрами, аналогичными указанным. Если такое подключение обнаруживается, то возвратается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция ibase_close() не может закрыть подключения, созданные с помощью ibase_pconnect().) См. описание аргументов в ibase_connect(). ibase_prepare Подготовка запроса для последующего выполнения int ibase_prepare ([int link_identifier, string query]) В дальнейшей части сценария этот запрос можно выполнить функцией ibase_execute(), указав его параметры. ibase_execute Выполнение подготовленного запроса int ibase_execute (int query [, int bind_args ...]) Выполняет запрос query, подготовленный функцией ibase_prepare(). Это более эффективно, чем использование для выполнения серии запросов функцией ibase_query(), если сами запросы различаются только указываемыми параметрами. <?php ibase_free_query Уничтожение подготовленного запроса int ibase_free_query (int query) Уничтожает запрос, подготовленный функцией ibase_prepare(). ibase_query Выполнение запроса к БД InterBase int ibase_query ([int link_identifier. string query [, int bind_args]]) Возвращает дескриптор набора записей, обрабатываемый ibase_fetch_ row(), ibase fetch object(), ibase free result() и ibase free query(). Хотя функция поддерживает возможность указания параметров запроса, целесообразнее использовать функции ibase_prepare() и ibase_ execute(). ibase_trans Начать транзакцию int ibase_trans ([int trans_args [, int link_identifier]]) ibase_commit Завершение транзакции int ibase_commit ([int link identifier, int trans_number]) Завершает транзакцию trans_number, созданную ibase_trans(). ibase_rollback Отмена транзакции int ibase_rollback ([int link_identifier, int trans_number]) Отменяет транзакцию trans_number, созданную ibase_trans(). ibase free_result Уничтожение набора записей int ibase_free_resu1t (int result_identifier) Освобождает память, занятую набором записей, возвращенным ibase_ query(). ibase_fetch_row Занесение записи в нумерованный массив array ibase_fetch_row (Int result_ldentifler) Возвращает в массиве следующую запись из набора, возвращенного ibase_query(). ibase_fetch_object Получение записи в свойствах объекта object ibase_fetch_object (int resultjid) Возвращает в свойствах псевдообъекта следующую запись из набора result_id, возвращенного ibase_query() или ibase_execute(). <php См. также ibase_fetch_row(). ibase_feld_info Получение информации о поле записи в массиве array ibase_field_info (int result, int field number) Возвращает массив, содержащий элементы name, alias, relation, length, type. $rs=ibase_query ibase_timefmt Установка формата возвращаемых даты и времени int ibasejtimefmt (string format [, Int columntype]) Внутренне поля даты и времени форматируются функцией языка С strftime(), а с помощью данной функции можно установить вид форматирования возвращаемых запросами данных. В строке format, дается шаблон, по которому производится форматирование. Аргумент columntype указывает, формат каких именно полей устанавливается (только с InterBase версии 6 или выше), и может принимать константные значения IBASE_TIMESTAMP (по умолчанию), IBASE_DATE и IBASEJIME. <?php Умолчания можно установить параметрами конфигурации (php.ini): ibase.timestampformat, ibase.dateformat и ibase.timeformat. ibase_num_fields Получение числа полей в наборе записей int ibase_num_fields (int result_id) В настоящее время функция еще не работоспособна. <?рhр См. также ibase_field_info(). ibase_errmsg Получение сообщения об ошибке string ibase_errmsg (void) Поля BLOB В PHP имеются следующие функции для работы с полями BLOB БД InterBase (документация для них пока отсутствует):
Поскольку единственной информацией об этих функциях является j пример из исходных текстов, он приводится далее. $cnn=ibase_connect("localhost.F: Существующий модуль расширения Informix позволяет работать с БД Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x и IDS 2000. IDS 7.x поддерживается полностью (включая ноля BYTE и TEXT), ] но для IUS 9.x еще не завершена поддержка типов SLOB и CLOB. Для компиляции необходима ESQL/C (версия 7.2х или выше должна входить в Informix Client SDK) для компиляции драйвера Informix. Также должны быть установлены значения переменных системы INFORMIXDIR и добавлен каталог $INFORMIXDIR/bin в список путей PATH до запуска сценария configure (с ключом —with_informix=yes). Автоопределение каталогов файлов заголовков и библиотек может быть переопределено установкой системных переменных IFX_LIBDIR, IFXJJBS и IFXJNCDIR. Во время выполнения переменные системы INFORMIXDIR, INFORMIXSERVER и PATH должны быть правильно инициализированы. Для полей BLOB (TEXT и BYTE) запросом возвращаются их идентификаторы. Их содержимое можно получить в строковой переменной (если установлено ifx_blobinfile(0);) функцией ifx_get_blob($b1ob_id) или сохранить в файле (если установлено ifx_blobinfile(l);) функцией i fx_get_blob($bl ob_i d);. ifx_connect Подключение к серверу БД Informix int ifx_connect ([string database [, string user [, string password]]]) Все аргументы необязательны, и если их не указывать, то используются значения из файла конфигурации: ifx.default_host (если не указано иное, библиотеки Informix используют значение системной переменной INFORMIXSERVER), ifx.default_user, ifx.default_password. Возвращается дескриптор подключения или FALSE — при ошибке. $conn_id = ifx_connect ("mydb@ol_srvl". "imyself". "mypassword"): Если функция повторно вызывается с теми же аргументами, новое подключение не создается, а возвращается идентификатор имеющегося. В конце сценария принято закрывать подключение функцией ifx_ close(), но этого можно не делать, поскольку РНР автоматически закрывает все (неустойчивые) подключения при завершении сценария. См. также: ifx_pconnect() и ifx_close(). ifx_pconnect Создание устойчивого подключения к серверу БД Informix int ifx_pconnect ([string database [, string userid [, string password]]]) Возвращается дескриптор подключения или FALSE — при ошибке. ifx_pconnect() действует подобно ifx_connect() с двумя отличиями. Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (БД, пользователь, пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция ifx_close() не может закрыть подключения, созданные с помощью ifx_pconnect().) См. также ifx_connect(). ifx_close Закрытие подключения к Informix int ifx_close ([int linkjdentifier]) Всегда возвращает TRUE. Идентификатор закрываемого подключения указывается в аргументе; если сто не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Устойчивые подключения, созданные функцией ifx_pconnect(), не закрываются. $corn_id = ifx_connect См. также: ifx_connect() и ifx_pconnect(). ifx_query Выполнение запроса к БД Informix int ifx_query (string query [, int linkjdentifier [, int cursorjtype [, mixed blobidarray]]]) Посылает запрос текущей БД, активной для текущего (последнего открытого) подключения или указанного в linkjidentifier. Если подключений не имеется, то косвенно вызывается функция ifx_connect() с параметрами по умолчанию. Возвращает дескриптор набора возвращенных записей или FALSE -при ошибке. Для запросов SELECT необязательным аргументом cursorjtype можно указать специальный тип курсора (значение формируется бито-I вой маской из констант IFX_SCROLL, IFXjHOLD). В зависимости от тина запроса число возвращенных (измененных) записей (приблизительное или фактическое) можно выяснить функцией ifx_affected_rows(). Если в запросе передаются поля BLOB (BYTE или TEXT), то в аргументе (массиве) blobidarray указываются дескрипторы (blob ids), а в запросе вместо их значений ставится знак «?>>. Если содержимое полей TEXT (или BYTE) допускает, можно использовать функции ifx_textasvarchar(l) и ifx_byteasvarchar(l), что позволяет работать с этими полями (получать их содержимое), как если бы они были обычными (но длинными) нолями VARCHAR, не заботясь о blob дескрипторах. В противном случае придется использовать дополнительные функции. В ситуации ifx_textasvarchar(0) и ifx_byteasvarchar(0) (по умолчанию) запросы выборки возвращают для полей BLOB их дескрипторы (целые числа). Их содержимое можно получить специальными функциями. // Пример 1. распечатать всю таблицу См. также ifx_connect(). ifx_prepare Подготовка SQL-запроса для последующего выполнения int lfx_prepare (string query, int conrMd [, Int cursor_def. mixed blobidarray]) Возвращает дескриптор, используемый в функции ifx_do(). Для запросов SELECT необязательным аргументом cursor_type можно указать тип курсора (значение формируется битовой маской из констант IFXJCROLU IFXJHOLD). Если в запросе передаются поля BLOB (BYTE или TEXT), то в аргументе (массиве) blobidarray указываются дескрипторы (blob ids), а в запросе вместо их значении ставится знак «?>>. Если содержимое полей TEXT (или BYTE) допускает, можно использовать функции ifx_textasvarchar(l) и ifx_byteasvarchar(l), что позволяет работать с этими полями (получать их содержимое), как если бы они были обычными (но длинными) полями VARCHAR, не заботясь о blob дескрипторах. В противном случае придется использовать дополнительные функции. Подготовленные запросы позволяют сперва вычислить число подходящих запросу записей функцией ifx_affected_rows(). См. также ifx_do(). ifx_do Выполнение подготовленного запроса int ifx_do (int result_id) Возвращает TRUE или FALSE — при ошибке. См. также: ifx_prepare(), ifx_affected_rows(). ifx_error Получение кода ошибки последней операции Informix string ifx_error(void); Возвращаемая строка описания ошибки форматируется следующим образом: х [SQLSTATE = (две цифры) (три цифры) SQLCODE=cccc], где х — один из символов, означающих:
Если х-символ не пробел, то SQLSTATE и SQLCODE описывают детали ошибки (см. документацию БД). См. также ifx_errormsg(). ifx_errormsg Получение описа, мя ошибки последней операции string ifx_errormsg ([int errorcode]) Если в аргументе указать код ошибки, то будет получено ее описание. printf("£s\ri<br>", ifx_errormsg(-201)); См. также ifx_error(). ifx_affected_rows Получение числа измененных или возвращенных записей int ifx_affected_rows (int resulted) В аргументе указывается дескриптор набора записей, возвращенный функцией ifx_query() или ifx_prepare(). Для запросов типа INSERT, UPDATE и DELETE возвращается число фактически добавленных, измененных, удаленных записей (зна- чение sqlerrd[2]). Для запросов выборки SELECT это предполагаемое число (sqlerrd[0]), которое не всегда верно.
См. также ifx_num_rows(). ifx_getsqlca Получение параметров запроса sqlca.sqlerrd[0..5] array ifx_getsq"lca (Int resu"lt_id) В аргументе указывается дескриптор набора записей, возвращенный функцией ifx_query() или ifx_prepare(). Возвращается ассоциативный массив, содержащий дополнительные результаты выполнения запроса сервером sqlerrd() ... sqlerrdS. Альтернативно ту же операцию можно выполнить запросом "SELECT dbinfo( 'sqlca.sqlerrdx')". // предполагается, что первое поле таблицы tbl последовательное Sqid = ifx_query("INSERT INTO tbl VALUES (0. '2nd column', 'another column') ". Sconmd); if (! $qid) { ... error ... } Ssqlca = ifx_getsqlca (Sqid): echo "Последовательное значение добавленной записи: " . $sqlca["sqlerrdl"]. ifx_fetch_row Занесение записи в массив array ifx_fetch_row (int result_id [, mixed position]) Возвращает в ассоциативном массиве (индексами служат имена полей) запись из результата запроса (возвращенного функциями ifx_query() или ifx_prepare()) или FALSE, если записей больше не имеется. Для полей BLOB возвращаются их цифровые идентификаторы, которые можно использовать в функции ifx_get_blob() (если, конечно, не использовались ifx_textasvarchar(l) или ifx_byteasvarchar(D). Необязательным аргументом position для SCROLL курсоров можно указать, какую запись следует возвратить: "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" или «абсолютный» номер записи. Последующие вызовы (по умолчанию возвращают следующие записи). ifx_htmltbl_result Вывод результатов запроса в таблице HTML int ifx_htmltbl_result (int resultjid [, string html_table_options]) Возвращает число выведенных записей или FALSE — при ошибке. Во втором аргументе можно указать атрибуты тега <table>. ifx_ fieldtypes Получение списка полей набора записей array ifx_fieldtypes (int resu1t_id) Возвращает ассоциативный массив (имена полей являются индексами, а SQL-типы полей — значениями) или FALSE — при ошибке. В аргументе указывается результат запроса. ifx_ fieldproperties Получение списка свойств полей array ifx_fieldproperties (Int result_id) Возвращает ассоциативный массив (имена нолей являются индексами, а SQL-свойства полей — значениями) или FALSE — при ошибке. В аргументе указывается результат запроса. Свойства полей кодируются в виде: "SQLTYPE;length;precision;scale: ISNULLABLE", где SQLTYPE - тип поля Informix (например, "SQLVCHAR"), a ISNULLABLE = "Y" или "N". Получение числа полей, возвращаемых запросом int ifx_num_fields (int resultjid) ifx_num_rows Получение числа записей, уже полученных из результата запроса Int ifx_nura_rows (int result_id) ifx_ free_result Уничтожение результата запроса int ifx_free_resu!t (int result_id) ifx_create_char Создание char-объекта int ifx_create_char (string param) В аргументе указывается содержимое объекта. ifx_free_char Уничтожение char-объекта int ifx_free_char (int bid) Возвращает TRUE или FALSE — при ошибке. ifx_update_char Изменение содержимого char-объекта int ifx_update_char (int bid, string content) Возвращает TRUE или FALSE — при ошибке. ifx_get_char Получение содержимого char-объекта int ifx_get_char (int bid) ifx_create_blob Создание blob-объекта int ifx_create_btob (int type, int mode, string param) Аргумент type указывает тип: 1 = TEXT, 0 = BYTE; mode: 0 — что содержимое объекта будет сохраняться в памяти, 1 -в файле;param: если mode = 0, это содержимое объекта, а если mode = 1 — это дескриптор файла данных. Возвращает идентификатор созданного объекта или FALSE — при ошибке. ifx_copy_blob Клонирование blob-объекта int ifx_copy_blob (int bid) Возвращает идентификатор созданного объекта или FALSE — при ошибке. ifx_free_blob Закрытие blob-объекта int ifx_free_blob (int bid) Возвращает TRUE или FALSE — при ошибке. ifx_get_blob Получение содержимого blob-объекта int ifx_get_blob (int bid) В аргументе указывается идентификатор, полученный запросом. Если установлено ifx_blobinfile(l), возвращается имя созданного файла, в котором сохранено содержимое поля. Ответственность за удаление этого временного файла возлагается на вас. Размещение его зависит от переменной окружения blobdir (по умолчанию = ".", то есть в текущем каталоге); файлы имеют префикс btb. Для облегчения очистки используйте, например, putenv("bдobdir=tmpblob");. ifx_update_blob Изменение содержимого объекта blob int ifx_update_blob (int bid, string content) Возвращает TRUE или FALSE — при ошибке. ifx_ blobinfile_mode Установка режима получения содержимого объектов blob Если указывается значение 0, то содержимое будет сохраняться в памяти, а если 1, то в файле. Умолчание также устанавливается в файле конфигурации. ifx_extasvarchar Установка режима получения полей TEXT void ifx_textasvarchar (int mode) Если указывается значение 0, то для полей TEXT запросом будет возвращаться их идентификатор, а если 1, то непосредственно их содержимое. Значение по умолчанию также устанавливается в файле конфигурации. ifx_byteasvarchar Установка режима получения полей BYTE void ifx_byteasvarchar (int mode) Если указывается значение 0, то для полей BYTE запросом будет возвращаться их идентификатор, а если 1, то непосредственно их содержимое. Умолчание также устанавливается в файле конфигурации. ifx_nullformat Установка формата значений NULL void ifx_nullformat (int mode) Устанавливает, какое значение будет возвращаться запросом для значений NULL. Если указывается значение mode "О", будет возвращаться пустая строка "", а если 1, то значение NULL. Умолчание также устанавливается в файле конфигурации. ifxus_create_slob Создание объекта slob и его открытие int ifxus_create_slob (int mode) Аргументом можно указать режим открытия (возможны битовые комбинации): 1 = LO_RDONLY, 2 = LOJWRONLY, 4 - LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER. Также возможно использовать именованные константы IFX_LO_RDONLY, IFX_LO_ WRONLY и т. и. Возвращает идентификатор созданного объекта или FALSE — при ошибке. ifxus_free_slob Удаление объекта slob int ifxus_free_slob (int bid) Возвращает TRUE или FALSE — при ошибке. ifxus_close_slob Закрытие slob-объекта int ifxus_c"lose_slob (int bid) Возвращает TRUE или FALSE — при ошибке. ifxus_open_slob Открытие объекта slob int ifxus_open_slob (long bid, int mode) Аргументом mode можно указать режим открытия (возможны битовые комбинации): 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER. Также возможно использовать именованные константы IFX_LO_RDONLY, IFX_LO_ WRONLY и т. п. Возвращает идентификатор созданного объекта или FALSE — при ошибке. ifxus_tell_slob Получение позиции курсора int ifxus_tell_slob (long bid) Возвращает текущую позицию (чтения/записи) открытого slob-объекта bid или FALSE — при ошибке. ifxus_seek_slob Установка позиции курсора int ifxus_seek_blob (long bid, int mode, long offset) Устанавливает позицию (чтения/записи) offset открытого slob-объекта bid в байтах. Возвращает позицию или FALSE — при ошибке. В аргументе mode указывается, от какого места отчитывается смещение: 0=LO_SEEKlSET (от начала), 1-LO_SEEK_CUR (от текущей позиции), 2=LO_SEEK_END (от конца). ifxus_read_slob Чтение данных из объекта slob string ifxus_read_slob (long bid, long nbytes) Возвращает прочитанную строку данных размером nbytes байт из slob-объекта bid или FALSE — при ошибке. ifxus_write_slob Запись данных в объект slob int ifxus_write_slob (long bid, string content) Записывает строку данных content в slob-объект bid. Возвращает число записанных байт пли FALSE — при ошибке. Для использования этих функций необходимо скомпилировать РНР с поддержкой Ingres, используя параметр —with-ingres. Для этого необходима библиотека Open API и заголовочные файлы, включенные в Ingres II. Если переменная окружения II_SYSTEM не установлена корректно, можно использовать параметр — with-ingres=DIR, указывая 1 каталог размещения Ingres. Если при использовании РНР-расширения web-сервер Apache ие запускается и сообщает: «PHP Fatal error: Unable to start ingresjii module in Unknown on line 0», удостоверьтесь, что переменная окружения II_SYSTEM установлена корректно. Должно помочь добавление «export II_SYSTEM="/horae/ingres/II» в сценарий, запускающий Apache перед строкой запуска httpd. Ingres не допускает конкурентные запросы/транзакции для одного подключения. Поэтому результат запроса должен обрабатываться до выполнения следующего запроса, а транзакция совершаться (или отменяться) до начала следующей транзакции. ingres_connect Подключение к серверу Ingres II resource ingres_connect ([string database [, string username [. string password]]]) Возвращает дескриптор подключения Ingres II или FALSE — при ошибке. Аргумент database имеет синтаксис: [node_id: :]dbname[/svr_class]. Для неуказанных параметров используются значения из файла конфигурации php.ini ingres.default_database, Ingres.default_user и Ingres. default_password. Поскольку все ingres-функции используют дескриптор последнего открытого подключения по умолчанию, его не требуется сохранять, если имеется всего одно подключение. Подключение закрывается при завершении сценария или явном вызове ingres_close(). <?php См. также: ingres_pconnect() и ingres_close(). ingres_pconnect Создание устойчивого подключения к ВД сервера Ingres II resource ingres_pconnect ([string database [, string username [, j string password]]]) Возвращает дескриптор подключения или FALSE — при ошибке. ingres_pconnect() действует подобно ingres_connect() с двумя отличиями. Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя БД, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция ingres_ close() не может закрыть подключения, созданные с помощью ingres_ pconnect().) См. также: ingres_connect() и ingres_close(). Ingres_close Закрытие подключения bool ingres_dose ([resource link]) Возвращает TRUE или FALSE — при ошибке. Идентификатор закрываемого подключения указывается в аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения не закрываются. См. также: ingres_connect() и ingres_pconnect(). ingres_query Выполнение запроса к БД bool ingres_query (string query [, resource link]) Возвращает TRUE или FALSE — при ошибке. Запрос становится частью текущей транзакции (при необходимости открывается новая). Для завершения транзакции вызывается ingres_ commit(), а с помощью ingres_roTlback() можно отменить транзакцию. Функцией ingres_autocommit() можно установить режим немедленного выполнения запроса. Некоторые запросы SQL не могут выполняться данной функцией: «GET DBEVENT», «PREPARE TO COMMIT», / «SAVEPOINT» и все запросы, использующие курсор. <?php См. также: ingres_fetch_array(), ingres_fetch_object(), ingres_fetch_row(), ingres_commit(), ingres_roTlback() и ingres_autocommit(). ingres_rollback Отмена транзакции bool ingres_roTlback ([resource link]) Закрывает текущую транзакцию, отменяя все изменения, внесенные запросами от начала транзакции. Новая транзакция открывается при последующем вызове ingres_query(). См. также: ingres_query(), ingres_commit() и ingres_autocommit(). ingres_commit Завершение транзакции boo! ingres_commit ([resource link]) Закрывает текущую транзакцию, фиксируя все изменения, внесенные запросами от начала транзакции. Новая транзакция открывается при последующем вызове ingres_query(). Функцией ingres_autocommit() можно установить режим немедленного выполнения каждого запроса. См. также: ingres_query(), ingres_rollback() и ingres_autocomnnt(). ingres_autocommit Переключение режима немедленного выполнения запроса bool ingres_autocomm1t ([resource link]) При запуске сценария по умолчанию запрос(-ы) (выполненный функцией ingres_query()) необходимо завершать явно, вызовом функции ingres_commit() (или отменять транзакцию с помощью ingres_ rollbackO). Если же (вызовом данной функции) переключить режим автовыполнения, то запросы будут выполняться немедленно, то есть после каждого запроса косвенно вызывается ingres_commit(). Повторный вызов функции переключает режим на противоположный. См. также: ingres_query(), ingres_rollback() и ingres_commit(). ingres_num_rows Получение числа измененных или возвращенных запросом записей int ingres_num_rows ([resource link]) После запросов DELETE, INSERT, UPDATE функция возвращает число измененных записей, а после запросов выборки — число возвращенных записей (функция должна вызываться до разборки результата запроса функциями ingres_fetch_array(), ingres_fetch_object() или ingres_fetch_row()). В цикле обработки результатов запроса для проверки того, все ли записи были обработаны, целесообразнее использовать возвращаемое fetch-функциями значение. См. также: ingres_query(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row(). ingres_num_fields Получение числа возвращенных запросом полей int ingres_num_fields ([resource link]) См. также: ingres_query(), ingres_fetch_array(), ingres_fetch_object() n ingres_fetch_row(). ingres_fetch_row Занесение записи в нумерованный массив array ingres_fetch_row ([resource link]) Возвращает в массиве (нумерация полей начинается с 1) следующую запись, возвращенную запросом, или FALSE, если все записи уже были обработаны. <?php См. также: ingres_num_fields(), ingres_query(), ingres_fetch_array() и ingres_fetch_object(). ingres_fetch_array Занесение записи в массив array ingres_fetch_array ([int result_type [, resource link]]) Возвращает в массиве следующую запись, возвращенную запросом, или FALSE, если записей больше не имеется. Данная функция является расширением функции ingres_fetch_row(), и она может возвращать нумерованный или ассоциативный массив (а также объединенный). Вид возвращаемого массива может указываться в аргументе result_type одной из констант: II_NUM, II_ASSOC, П_ВОТН (по умолчанию). В ассоциативных массивах индексами служат имена полей. Если имеются одноименные поля, используется последнее имя. Для доступа к одноименным полям можно использовать числовые индексы (поля нумеруются в той последовательности, в которой указаны в запросе или в таблице) или псевдонимы. ingres_query(select tl.fl as f t2.il as b from tl. t2): Заметьте, что функция выполняется лишь незначительно медленнее, чем ingres_fetch_object(), но предоставляет дополнительную функциональность. <?php См. также: ingres_query(), ingres_num_fields(), ingres_field_name(), ingres_fetch_object() и ingres_fetch_cow(). ingres_fetch_object Получение записи в свойствах объекта object ingres_fetch_object ([int result_type [, resource link]]) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. Заметьте: осуществлять доступ к полям по их номерам невозможно (объект не может иметь численные свойства). По скорости выполнения функция идентична ingres_fetch_array() и почти идентична ingres_fetch_row(). <?php См. также: ingres_query(), ingres_num_fields(), ingres_field_name(), ingres_fetch_array() и ingres_fetch_row(). ingres_field_name Получение имени поля записи в результате запроса string ingres_field_name (int index [, resource link]) Функция возвращает имя поля с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE — при ошибке. См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row(). ingres_field_type Получение типа поля string ingres_field_type (int index [, resource link]) Функция возвращает имя поля с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE — при ошибке. Возвращаемые типы полей: IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_ TYPE, IIAPIJLTJYPE IIAPIJNTJYPE, IIAPI_VCH_TYPE. Некоторые типы могут соответствовать нескольким SQL-типам в зависимости от длины поля (см. ingres_field_length()). Например, IIAPI_FLT_TYPE может соответствовать float4 или floatS. См. документацию: «Ingres/OpenAPI User Guide — Appendix С». См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row(). ngres_field_nullable Выяснение, может ли поле принимать значение null bool ingres_field_nullable (int index [, resource link]) Возвращает TRUE, если поле с индексом index (нумерация начинается с 1) может иметь значение NULL, иначе возвращает FALSE. См. также: ingres_query(), ingresjium_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetcn_row(). Ingres_field_prength Получение длины поля int ingres_field_length (int index [, resource link]) Возвращает длину поля (максимальное число байт) с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE — при ошибке. См. документацию «Ingres/OpenAPI User Guide — Appendix С». См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row(). ingres_field_precision Получение точности поля int ingres_field precision (int index [, resource link]) Возвращает точность поля (только для полей, содержащих числовые значения) с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом. См. документацию «Ingres/OpcnAPI User Guide — Appendix С». См. также: ingres_query(), ingres_num_fie1ds(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row(). ingres_field_scale Получение размерности поля int ingres_field_scale (int index [, resource link]) Возвращает масштаб целочисленного ноля с индексом index. См. документацию «Ingrcs/OpenAPI User Guide — Appendix С». См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_ieow(). Sybase connect Подключение к серверу Sybase int sybase_connect (string server-name, string username, string ' password [, string charset]) Возвращает дескриптор подключения к серверу Sybase или FALSE -при ошибке. Аргумент servername должен быть действительным именем, определенном в файле interfaces. Если функция повторно вызывается с теми же аргументами, новое подключение не создастся, а возвращается идентификатор имеющегося. Подключение к серверу закрывается при завершении сценария или ранее, если явно вызывается функция sybase_close(). См. также: sybase_pconnect(), sybase_close(). sybase_close Закрытие подключения к Sybase bool sybase_close (int link_identifier) Возвращает TRUE или FALSE — при ошибке. Идентификатор закрываемого подключения указывается в аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение. Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения, созданные функцией sybase_pconnect(), не закрываются. См. также: sybase_connect(), sybase_pconnect(). sybase_pconnect Создание устойчивого подключения к серверу Sybase int sybase_pconnect (string servername, string username, string password [, string charset]) Возвращает дескриптор устойчивого подключения или FALSE — при ошибке. sybase_pconnect() действует подобно sybase_connect() с двумя отличиями. Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя сервера, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения. При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция sybase_ close() не может закрыть подключения, созданные с помощью sybase_ pconnect().) sybase_select_db Выбор БД Sybase bool sybase_se!ect_db (string databasejiame, int link_identifier) Возвращает TRUE или FALSE — при ошибке. Устанавливает БД с именем database_name в качестве активной для текущего подключения или указанного в link_identifier. Если подключений не имеется, то косвенно вызывается функция sybase_connect() с параметрами по умолчанию. Последующие запросы, выполняемые функцией, будут адресованы данной БД. См. также: sybase_connect(), sybase_pconnect() и sybase_query() sybase_query Выполнение запроса к БД Sybase int sybase_query (string query, int link_identifier) Посылает запрос текущей БД, активной для текущего (последнего открытого) подключения или указанного в link_identifier. Если подключений не имеется, то косвенно вызывается функция sybase_ connect() с параметрами по умолчанию. Возвращает дескриптор набора возвращенных записей или FALSE -при ошибке. См. также: sybase_select_db() и sybase_connect(). sybase_affected_rows Получение числа измененных последним запросом записей int sybase_affected_rows ([int link_identifier]} Возвращается число записей, измененных в результате выполнения запросом DELETE, INSERT, REPLACE или UPDATE. Если последним запросом была команда DELETE без ограничения WHERE, то из таблицы будут удалены все записи, но эта функция возвратит 0. Чтобы выяснить, сколько записей было возвращено командой SELECT, используйте функцию sybase_num_rows(). Функция доступна только при использовании библиотеки интерфейса СТ Sybase, но не D В Sybase. Sybase_num_rows Получение числа записей, возвращенных запросом int sybase_num_rows (int result) См. также: sybase_query() и sybase_fetch_row(). sybase_num_fields Получение числа полей в наборе записей int sybase_num_fields (int result) См. также: sybase_query(), sybase_fetch_field(), sybase_num_rows(). sybase_data_seek Перемещение внутреннего указателя записи bool sybase_data_seek (int result_identifier. int row_number) При каждом вызове функции sybase_fetch row() (или подобной) внутренний курсор записи смещается на следующую запись. Данная функция позволяет свободно перемещать курсор в наборе записей res ul t_ identifier так, чтобы он указывал на запись с номером row_number (нумерация начинается с 0) при следующем вызове sybase_fetch_rov*(). Она возвращает TRUE или FALSE — при ошибке. Sybase_result Получение определенного элемента набора записей string sybase_result (int result, int row, mixed field) Возвращает содержимое ячейки из набора записей resul t. В аргументе row указывается номер записи (нумерация начинается с 0), в аргументе field можно указать индекс поля (число), имя поля, полное имя поля (вида: имя_таблицы.имя_поля) или псевдоним поля (для запросов типа 'SELECT foo AS bar FROM...). При работе с большими наборами записей быстрее выполняются функции типа _fetch_ (см. ниже). Также заметьте, что численные индексы обрабатываются быстрее строковых. Не следует вызывать функцию mysql_result() в сочетании с другими функциями обработки набора записей. Рекомендуется использовать альтернативные функции: sybase_fetch_ row(), sybase_fetch_array() и sybase_fetch_object(). sybase_fetch_row Занесение записи в нумерованный массив array sybase_fetch_row (int result) Возвращает массив, соответствующий текущей записи, из набора записей result, возвращенных запросом (последующий вызов функции возвращает следующую запись), или FALSE, если записей более не имеется. Каждое поле записи сохраняется в нумерованном элементе массива (нумерация начинается с 0). См. также: sybase_fetch_array(), sybase_fetch_object(), sybase_data_seek(), sybase_result(). sybase_fetch_array Занесение записи в массив array sybase_fetch_array (int result) Возвращает массив, соответствующий текущей записи, из набора записей result, возвращенных запросом, или FALSE, если записей более не имеется (при этом курсор записи перемещается на следующую). Данная функция является расширением функции sybase_fetch_row(), и она возвращает объединенный нумерование-ассоциативный массив. Доступ к элементам массива может осуществляться как через имена полей, так и по их номеру. Заметьте, что функция выполняется незначительно медленнее, чем sybase_fetch_row(), но предоставляет дополнительную функциональность. См. также sybase_fetch_row(). sybase_fetch_object Получение записи в свойствах объекта int sybase_fetch_object (int result) Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. По скорости выполнения (и функциональности) функция идентична sybase_fetch_array() и почти идентична sybase_fetch_row(). См. также: sybase_fetch_array() и sybase_fetch_row(). sybase_free_result Уничтожение набора записей bool sybase_free_result (int result) Функция освобождает память, занимаемую набором записей result, возвращенным запросом. Ее следует использовать только в том случае, если требуется экономить память, так как память автоматически освобождается при завершении сценария. sybase_fetch_field Получение информации о поле записи в свойствах объекта object sybase_fetch_field (int result [, int field_offset]) Если номер поля field_offset не указан, при каждом вызове функции возвращаются свойства следующего поля из набора записей resul t. Возвращаемый объект имеет следующие свойства (и содержит информацию):
См. также sybase_field_seek(). sybase_field_seek Перемещение к указанному полю int sybase_field_seek (int result, int field_offset) Перемещается к указанному числом field_offset нолю. И если при следующем вызове sybase_fetch_field () не указывается номер поля, будет возвращено это поле. См. также sybase_fetch_field(). sybase_get_last_message Получение последнего сообщения сервера string sybase_getjast_message (void) sybase_min_client_severity Установка минимального уровня требовательности клиента void sybasejnin_client_severity (int severity) Функция доступна только при использовании библиотеки интерфейса СТ Sybase, но не DB Sybase. См. также sybase_min_server_severity(). sybase_min_server_severity Установка минимального уровня требовательности сервера void sybase_min_server_severity (int severity) Функция доступна только при использовании библиотеки интерфейса СТ Sybase, но не DB Sybase. См. также sybaseji)in_client_severity(). sybase_min_message_severity Установка минимального уровня возвращаемых сообщений void sybase_min_message_severity (int severity) См. также sybase_min_error_seventy(). sybase_min_error_severity Установка минимального уровня сообщаемых ошибок void sybase_min_error_severity (int severity) См. также sybase_rain_message_severity(). Примерный образец работы с БД: <?php Ora_Logon Подключение к серверу Oracle int orajogon (string user, string password) Возвращает дескриптор подключения к БД или FALSE — при ошибке. Подключения также могут создаваться с использованием синтаксиса SQL*Net с указанием TNS имени пользователя user в виде: Sconn = Ora_Logon Если имеются не-ASCII символы, то должна быть установлена (до запуска сервера) переменная окружения (Oracle) NLS_LANG. Ora_Logoff Закрытие подключения int orajogoff (int connection) Возвращает TRUE или FALSE — при ошибке. См. также ora_logon(). Ora_pLogon Создание устойчивого подключения к серверу Oracle int ora_plogon (string user, string password) См. также oraJogon(). Ora_0pen Открытие курсора int ora_open (int connection) Возвращает индекс курсора для подключения connection или FALSE -при ошибке. Ora_Close Закрытие курсора int ora_close (int cursor) Закрывает курсор, открытый ora_open(). Возвращает TRUE или FALSE -при ошибке. Ora_CommitOn Разрешение автовыполнения запросов /» int ora_commiton (int conn) { Каждый запрос для подключения conn, выполняемый функцией ога_ ехес(), будет автоматически завершаться. Возвращает TRUE или FALSE — при ошибке. Ora_CommitOff Запрет автовыполнения запросов int ora commitoff (int conn) Ora _Commit Завершение текущей транзакции int ora_commit (int conn) Транзакцией является серия изменений в БД (запросов) после последнего завершения транзакции (если автозавершсние было отключено). Возвращает TRUE или FALSE — при ошибке. Ora_Rollback Отмена транзакции int ora_rolI back (int connection) Функция, обратная ora_commit(). Возвращает TRUE или FALSE — при ошибке. Ora_Parse Интерпретация SQL-запроса int ora_parse (int cursor_ind, string sql_statement, int defer) Подготавливает для исполнения запрос SQL или блок PL/SQL и связывает с курсором. Возвращает 0 или -1 - при ошибке. См. также: ога_ехес(), ora_fetch() и ora_do(). Ога_Ехес Исполнение подготовленного запроса int ora_exec (int cursor) Возвращает TRUE или FALSE — при ошибке. См. также: ora_parse(), ora_fetch() и ora_do(). Ora_Do Одновременное выполнение команд Parse; Exec, Fetch int ora_do (int conn, string query) Функция является комбинацией трех функций: ora_parse(), ora_exec(), ora_fetch(). Возвращает TRUE или FALSE — при ошибке. См. также: ora_parse(), ora_exec() и ora_fetch(). Ora_Bind Связывание переменной РНР с SQL-параметром Oracle int ora_bind (int cursor, string PHP_var_name, string SQL_param_name, int length [, int type]) Возвращает TRUE или FALSE — при ошибке. SQL параметр должен указываться в виде ":name". Необязательным аргументом type можно указать вид SQL параметра (входящий, выходящий): IN/OUT (0, по умолчанию), in (1) или out (2). В РНР 3.0.1 можно использовать вместо цифр константы: ORA_BIND_INOUT, ORA_ BINDJN и ORA_BIND_OUT. Функция должна вызываться после ora_parse() и до ога_ехес(). <?php Ora_Error Получение сообщения об ошибке Oracle string Ora_Error (int cursor_or_connection) Сообщение возвращается в виде строчек вида XXX-NNNNN, где XXX означает место возникновения ошибки, a NNNNN — причину. Ora_ErrorCode Получение кода ошибки Oracle int Ora_ErrorCode (int cursor_or_connection) Возвращает численное значение ошибки, произошедшей при последней операции. О означает отсутствие ошибки. Ora_Numcols Получение числа полей, возвращенных запросом int orajiumcols (int cursorjind) См. также: ora_parse(), ora_exec(), ora_fetch() и ora_do(). Ora_Numrows Получение числа записей, возвращенных запросом int orajiumrows (int cursor_ind) Ora_Fetch Получение записи int ora_fetch (int cursor) Возвращает TRUE или FALSE — при ошибке или если записей больше не имеется. См. также: ora_parse(), ora_exec() и ora_do(). Ora_Fetch_lnto Получение записи в массиве int ora_fetch_into (int cursor, array result [, int flags]) <?php array($results); Заметьте, что массив необходимо передавать по ссылке. См. также: ora_parse(), ora_exec(), ora_fetch() и ora_do(). Ora_GetColumn Получение данных поля записи mixed ora_getcolumn (int cursor, mixed column) Возвращает значение поля (или результата SQL/PL функции) или FALSE — при ошибке. Заметьте, что возвращаемые данные могут иметь значения: NULL, "", О, "О". Ora_ColumnName Получение имени поля string Ora_ColumnName (int cursor, int column) Возвращает имя в верхнем регистре. Ora_ColumnSize Получение размера поля int Ora_ColumnSize (int cursor, int Column) Ora_ColumnType Получение типа поля string Ora_ColumnType (int cursor, int column) Возвращаемая строка может иметь следующие значения:
Эта группа функций позволяет обращаться к серверам БД Oracle 8 и Oracle 7, используя Oracle 8 Call-Interface (OCI8). Для этого требуются клиентские библиотеки Oracle 8. Это расширение более функционально, нежели стандартное; оно поддерживает связывание переменных РНР с переменными Oracle, имеет полную поддержку типов LOB, FILE, ROWID и позволяет использовать определяемые пользователем переменные. До использования этого расширения необходимо установить параметры окружения Oracle. Это включает установку следующих системных переменных:
После этого необходимо добавить в группу пользователей oracle пользователя (обычно nobody или www), от имени которого запускается РНР (web-сервер). OCIServerVersion Получение строки информации сервера string OCIServerVersion (int conn) <?php OCILogon Подключение к серверу Oracle int OCILogon (string username, string password [, string db]) Возвращает дескриптор подключения, необходимый для указания для большинства функций OCI. В третьем аргументе можно указать либо константное имя локальной БД, либо ссылку на раздел в файле tnsnames.ora; если этот аргумент не указан, РНР будет использовать переменные окружения ORACLE_SID или TWO_TASK (tnsnames. ога) для определения, к какой БД следует подключиться. Подключения, созданные этой функцией, становятся разделяемыми на уровне сценария, что означает, что все команды COMMIT и ROLLBACK будут применяться ко всем транзакциям, даже если они принадлежат разным подключениям (см. пример ниже). См. также: OCIPLogonz() и OCINLogon(). OCINLogon Создание изолированного подключения к БД Oracle int OCINLogon (string username, string password [, string db]) Функция сходна с OCILogon(), но отличается тем, что все onepai COMMIT и ROLLBACK применяются только к транзакциям укаг ною подключения. Пример демонстрирует разделение подключений. <?php $db = "": См. также: OCILogon() и OCIPLogon(). OCILogOff Отключение от Oracle int OCILogOff (int connection) OCIPLogon Создание устойчивого подключения к Oracle int OCIPLogon (string username, string password [, string db]) Функция сходна с OCILogon(), но отличается тем, что подключение не закрывается после завершения сценария и остается действительным для дальнейшего использования. См. также: OCILogon() и OCINLogon(). OCIInternalDebug Разрешение или запрещение внутренней отладки void OCIInternalDebug (int onoff) По умолчанию отладка запрещена. Указание в аргументе значения О выключает отладку, а 1 — включает. OCIDefineByName Назначение PHP-переменной для возвращения значения из запроса SELECT int OCIDefineByName (int stmt, string ColumnName, mixed variable [, int type]) Используется при необходимости возвращения запросом выборки stmt данных поля ColumnName в переменную variable (тип возвращаемых данных type можно не указывать). Имя поля должно быть указано в верхнем регистре (в запросе регистр не важен). Если вы определяете переменную, отсутствующую в запросе, ошибки не возникает. Типы абстрактных данных (LOB/ROWID/BFILE) необходимо предварительно инициализировать функцией OCINewDescriptor(). См. также OCIBindByName(). <?php OCIBindByName Связывание переменной РНР с Oracle int OCIBindByName (int stmt, string ph_name, mixed invariable, int length [, int type]) Назначает переменную PHP variable для ввода-вывода данных ир операциях с Oracle в качестве параметра phjiame. Аргумент length устанавливает размер данных переменной в байтах; значение -1 указывает, что размер определяется автоматически. Для операций с абстрактными типами (LOB/ROWID/BFILE) прел варитслыю необходимо инициализировать их дескриптор функци ей OCINewDescriptorO. Для этих типов размер length должен быт указан значением -1. Тип type может определяться следующим константами: OCI_B_FILE (двоичный файл), OCI_B_CFILE (символьны файл), OCI_B_CLOB (символьный LOB), OCI_B_BLOB (двоичный LOB) OCI_B_ROWIO (ROWID). <?php OCI Parse Подготовка запроса к выполнению int OCIParse (jnt conn, strint query) Возвращает дескриптор запроса query для подключения conn или FALSE - при ошибке. OCIExecute Выполнение запроса int OCIExecute (int statement [, int mode]) Выполняет счапрос, предварительно подготовленный OCIParseO. Аргументом mode можно указать режим исполнения (по умолчанию OCI_COMMIT_Olsj_sUCCESS); если не требуется автоматическое выполнение запроса, указывайте OCI_DEFAULT. OCICommit Завершение незавершенных транзакций int OCICommit (int connection) OCIRollback Отмена незавершенных транзакций int OCIRollback (int connection) OCINewDescriptor Инициализация дескриптора LOB/FILE string OCINewDescriptor (int connection [, int type]) Выделяет ресурсы, необходимые для хранения дескрипторов или LOB-локаторов. Тип можно указать в аргументе type: OCI_D_FILE, OCI_DJ_OB (по умолчанию), OCI_D_ROWID. Для объектов LOB доступны методы load, save и savefile, а для BFILE — только load. <?php // фрагмент for retrieve OCIRowCount Получение числа измененных записей int OCIRowCount (int statement) Возвращается число записей, измененных запросом (например, UPDATE). Функция не возвращает число возвращенных запросом записей! <?php $conn = OCILogonC'scott"."tiger"):
OCINumCols Получение числа полей в запросе int OCINumCols (int stmt) <?php Sconn = OCILogonC'scott". "tiger");
OCIResult Получение значения поля записи, возвращенной запросом mixed OCIResult (int statement, mixed column) Возвращает данные ноля column текущей записи (см. OCIFetch()). Возвращает все типы данных как строки, за исключением абстрактных типов (ROWID, LOB и FILE). OCIFetch Занесение следующей возвращенной записи в буфер результата int OCIFetch (int statement) Позволяет получить запись после запроса выборки (SELECT) с помощью последующих вызовов OCIResultO, возвращающих поля записи. OCIFetchlnto Занесение следующей записи в массив Int OCIFetchlnto (int stmt, array Sresult [, int mode]) Функция позволяет поочередно получить все записи, возвращенные запросом выборки. По умолчанию массив result будет содержать все поля записи (содержащие данные, не равные NULL) с нумерацией начиная с 1. Аргумент mode позволяет изменить действие функции. Константы могут комбинироваться сложением (например, OCI_ASSOC+OCI_RETURN_NULLS):
OCIFetchStatement Занесение результата запроса в массив int OCIFetchStatement (int stmt, array Svariable) Возвращает число записей, занесенных в массив variable. <?php Sconn = OCILogonC'scott"."tiger"):
OCIColumnlsNULL Проверка, содержит ли поле записи значение NULL int OCIColumnlsNULL (Int stmt, mixed column) Возвращает TRUE, если ноле column в результате запроса strat имеет значение NULL. Поле может указываться номером (начиная с 1) или именем. OCIColumnName Получение имени поля string OCIColumnName (int stmt, int col) <?php Sconn OCILogonC'scott". "tiger").
См. также: OCINumCols(), OCIColumnType() и OCIColumnSize().
OCIColumnSize Получение размера поля int OCIColumnSize (Int stmt. mixed column) См. также: OCINumCols(), OCIColumnName() и OCIColumnSize(). OCIColumnType Получение типа поля mixed OCIColumnType (int stmt, int col) См. также: OCINumCols(), OCIColumnName() и OCIColumnSize(). OCIStatementType Получение типа ОСI запроса string OCIStatementType (int stmt) Возвращает одно из следующих значений:
<?php OCINewCursor Получение нового курсора (дескриптора запроса) int OCINewCursor (int conn) Используется для связывания ссылочных курсоров. <?php // хранимая процедура info.output возвращает ref
cursor в :data OCIFreeStatement Освобождение ресурсов, занимаемых запросом int OCIFreeStatement (int stmt) Возвращает TRUE или FALSE — при ошибке. OCIFreeCursor Освобождение ресурсов курсора Int OCIFreeCursor (int stmt) Возвращает TRUE или FALSE — при ошибке. OCIFreeDesc Уничтожение дескриптора большого объекта int OCIFreeDesc (object lob) Возвращает TRUE или FALSE — при ошибке. OCI Error Получение последнего сообщения об ошибке array OCIError ([int stmt|conn(global]) Возвращает ассоциативный массив, содержащий элементы code (номер ошибки) и message (сообщение ошибки). Если ошибки не про-> изошло, возвращает FALSE. Аргументом можно указать дескриптор, для которого получается сообщение. Данная группа функций позволяет работать с данными БД dBase (dbf). Индексы и memo-поля не поддерживаются. Блокировка также невозможна, поэтому, если два процесса web-сервера одновременно модифицируют один файл dBase, это может привести к его порче. В отличие от SQL БД структура «БД» dBase не поддается модификации. dBase-файл представляет собой простую последовательность записей фиксированной длины; добавляемые записи дописываются в конец файла, а удаленные сохраняются до вызова функции dbase_ pack(). Рекомендуется использование современных БД, например MySQL или Postgres. Поэтому поддержка dBase в РНР предназначена исключительно для экспорта и импорта (для облегчения обмена с другими приложениями). dbase_create Создание БД dBase int dbase_create (string filename, array fields) Аргумент fields — это массив массивов, где каждый из массивов описывает одно поле БД (таблицы). Каждое поле состоит из имени, символа, обозначающего тип, и (при необходимости) размера поля и его точности. Возможные типы полей:
Если файл БД был успешно создан, возвращается его дескриптор; в противном случае возвращается FALSE. Sdbname = "/trap/test.dbf": // "database"
name ; dbase_open Открытие БД dBase int dbase_open (string filename, int flags) В аргументе flags указывается режим открытия (0 — только для чтения, 1 — только для записи и 2 — для чтения и записи). Возвращает дескриптор БД или FALSE — при ошибке. dbase_close Закрытие БД dBase bool dbase_close (int dbase_identifier) dbase_pack Обновление БД dBase bool dbase_pack (int dbase_identifier) При этом удаляются все записи, помеченные с помощью dbase_ delete_record(). dbase_add_record Добавление записи bool dbase_add_record (Int dbase_identifier, array record) Добавляет запись, поля которой содержатся в массиве record в БД. Если число полей записи не соответствует числу полей в БД, добавление не производится и функция возвращает FAbSE. dbase_replace_record Замена Записи bool dbase_replace_record (int dbase_identifier. array record, int dbase_record_number) Заменяет запись (с номером dbase_record_number), поля которой содержатся в массиве record. Если число полей записи не соответствует числу полей в БД, добавление не производится и функция возвращает FALSF. Номера записей лежат в пределах от 1 до значения, возвращенного / dbase_numrecords(). dbase_delete_record Удаление записи bool dbase_delete_record (int dbasejidentifier. int record) Помечает запись с номером record для удаления последующим вызовом dbase_pack(). dbase_get_record Получение записи array dbase_get_record (int dbasejdentifier, int record) Возвращает массив, содержащий поля записи с номером record. Массив индексируется начиная с 0 и имеет элемент с индексом «deleted», равный 1, если запись была удалена (см. dbase_delete_record()). Каждое поле преобразуется к соответствующему типу РНР. (Даты сохраняются как строки.) dbase_get_record_with_names Занесение записи в ассоциативный массив array dbase get_record_with_names (int dbase_identifier, int record) Функция подобна dbase_get_record(), но вместо числовых индексов используются имена полей. dbase_numrecords Установление числа записей БД int dbasejiumrecords (int dbase_identifier) При обращении к записям БД их возможные номера лежат в пределах от 1 до значения, возвращаемого данной функцией. dbase_numfields Установление числа полей БД int dbasejiumfields (Int dbase_identifier) При обращении к полям записи их возможные номера лежат в пределах от 0 до значения, возвращаемого данной функцией, уменьшенного на единицу. $гес = dbase_get_record($db. Srecno); Эта ipynna функций позволяет манипулировать записями в dbm-БД. ^ Этот тип БД поддерживается системными библиотеками Berkeley DB, GDBM наряду со встроенной поддержкой «плоских файлов». Данные в них сохраняются в виде пар «имя/значение». $dbm = dbmopen ("lastseen". "w"); dbmopen Открытие БД DBM int dbmopen (string filename, string flags) Первый аргумент содержит полное имя DBM-файла БД, а второй — режим открытия: «г», «w», «n», «с» соответственно для чтения, для чтения и записи, создание новой БД (для чтения и записи), добавление в имеющуюся БД или ее создание. Возвращает дескриптор БД, используемый всеми последующими функциями, или FALSE — при ошибке. При использовании поддержки NDBM, NDBM фактически создает файлы filename.dir и filename.pag. GDBM (как и встроенная библиотека поддержки «плоских файлов») использует только один файл, a Berkeley DB создает файл fllename.db. Заметьте: РНР самостоятельно блокирует файл в дополнение к тому, что он может блокироваться библиотекой DBM. РНР не удаляет файлы .Ick, которые создает. dbmclose Закрытие БД DBM bool dbmclose (int dbm_identifier) Разблокирует и закрывает открытую БД. dbmexists Проверка существования имени bool dbmexists (int dbm_identifier, string key) Возвращает TRUE, если имеется значение с именем key, или FALSE - при ошибке. dbmfetch Получение значения элемента string dbmfetch (int dbirMdentifier, string key) Возвращает значение для имени key. dbminsert Добавление элемента int dbminsert (int dbm_identifier, string key, string value) Возвращает -1, если БД была открыта только для чтения; 0, если добавление было успешно выполнено; и 1, если указанный элемент уже существует (для замены используйте dbmreplace()). dbmreplace Замена значения bool dbmreplace (int dbm_identifier, string key. string value) Если указанного элемента key не существовало, он создается. dbmdelete Удаление элемента boo! dbmdelete (int dbnMdentifier, string key) Возвращает FALSE, если элемент key в БД не присутствует. dbmfirstkey Получение имени первого элемента string dbmfirstkey (int dbm_identifier) Порядок элементов не гарантируется (так как могут использоваться внутренние хеш-таблицы). dbmnextkey Получение следующего элемента string dbmnextkey (int dbm_identifier, string key) В примере демонстрируется, как можно получить все значения БД: $key = dbmfirstkey (Sdbmjid). while ($key) { dblist Получение описания используемой библиотеки DBM I string dblist (void) Эти функции предназначены для работы с разновидностями Berkeley DB. Фактически поддержка ограничена современными подобиями Slcepycat Software DB2 (не путайте с IBM DB2, использующей интерфейс ODBC). Действие некоторых функций различается в зависимости от реализации БД. Например, функции dba_optimize() и dba_sync() действуют согласно описанию, но могут быть совершенно бесполезны для некоторых видов БД. Чтобы добавить поддержку ниже перечисленных БД в РНР, используйте указанные параметры —with сценария конфигурирования configure.
php $id = dba_open ("/Imp/test.db", "n".
"db2'). DBA позволяет работать с двоичными данными и ограничена только возможностями БД. БД, использующие файлы, должны предоставлять возможность указания режима открытия файла БД (или его создания), и обычно это указывается в аргументе функций dba_open() и dba_popen(). Получить последовательно все содержащиеся в БД элементы можно, используя функции dba_firstkey() и dba_nextkey(). He изменяйте БД во время просмотра. <?php i .. .open database . dba_open Открытие БД Int dba_open (string path, string mode, string handler [, ...]) Открывает содержащуюся в файле path БД типа handler в режиме mode, который .может принимать следующие значения: «г» для чтения, «w» для чтения и записи, «с» для открытия уже существующей (или i создания отсутствующей БД) с доступом для чтения и записи и «n» для создания файла БД заново и открытия его для чтения и записи. Дополнительные аргументы могут указываться для некоторых БД при необходимости. Функция возвращает дескриптор открытой БД / (необходимый последующим функциям для выполнения операций f, с БД) или, при ошибке, FALSE. См. также: dba_popen(), dba_close(). dba_close Закрытие БД void dba_close (int handle) См. также: dba_open() и dba_popen(). dba_popen Устойчивое открытие БД int dba_popen (string path, string mode, string handler [, ...]) Функция подобна dba_open(), но подключение не закрывается при завершении сценария, а остается действительным для последующего использования. См. также dba_close(). dba_exists Проверка наличия элемента в БД bool dba_exists (string key. int handle) Возвращает TRUE, если элемент с именем key имеется в БД handle FALSE в противном случае или при ошибке. См. также: dba fetch(), dba_delete(), dba_insert() и dba_replace(). dba_firstkey Возвращение имени первого элемента БД string dba_firstkey (int handle) См. также Dba_nextkey(). dba_nextkey Возвращение имени следующего элемента БД string dbajnextkey (int handle) См. также dba_firstkey(). dba_fetch Получение значения указанного элемента string dba_fetch (string key, int handle) См. также: dba_exists(), dba_delete(), dba_insert() и dba_replace(). dba_insert Добавление элемента в БД boo! dba_insert (string key, string value, int handle) Если элемент с именем key уже присутствует в БД, операция не вы полняется. Возвращает TRUE пли FALSE — при ошибке. См. также: dba_exists(), dba_delete(), dba_fetch(), dba_replace(). dba_replace Замена или добавление элемента boo! dba_replace (string key, string value, int handle) Возвращает TRUE или FALSE — при ошибке. См. также: dba_exists(), dba_delete(), dba_fetch() и dba_insert(). dba_delete Удаление элемента string dba_delete (string key, int handle) Возвращает TRUE или FALSE — при ошибке. См. также: dba_exists(), dba_fetch(), dba_insert() и dba_replace(). dba_optimize Оптимизация БД bool dba_optimfze (int handle) Возвращает TRUE пли FALSE — при ошибке. См. также dba_sync(). dba_sync Синхронизация изменений в БД boo! dba_sync (int handle) . Обычно физически синхронизация изменений происходит сохранением файла на диск. Если эту операцию не выполнять, изменения БД будут потеряны. Возвращает TRUE или FALSE — при ошибке. См. также dba_optimize(). Функции позволяют читать данные БД filePro. См. также http://www. fiteproplus.com/. filepro Чтение и проверка map-файла booll filepro (string directory) Map-файл содержит информацию о БД и ее структуре. Так как никакой блокировки не выполняется, постарайтесь не модифицировать БД, открывая се в РНР. filepro_fieldcount Получение информации о числе полей в БД int filepro_fieldcount(void); См. также filepro(). filepro_rowcount Получение информации о числе записей в БД filePro int filepro_rowcount(void); См. также filepro(). filepro_retrieve Извлечение данных string filepro retrieve (int rowjiumber, int field_number) Возвращает данные поля, указанного номером fieldjiumber для записи rowjiumber. filepro_fieldname Получение имени поля string filepro_fieldname (int field_number) filepro_fieldtype Определение типа поля string fi]epro_fieldtype (int field_number) filepro-fieldwidth Определение размера поля int filepro_fie1dwidth (int field_number) Ovrimos SQL Server — это клиент-серверная реляционная БД с поддержкой быстрых транзакций и "web-возможностями (http://www. ovrimos.com/). Для поддержки ovrimos в РНР необходимо скомпилировать его с параметром конфигурирования -with-ovrimos. Также необходимо установить библиотеку sqlcli, входящую я комплект поставки Ovrimos SQL Server. <?php Sconn = ovrTnos_connect(" server, сот;" "800Г. "admin", "passwrd"). if ($conn != 0) { echo ("Connection ok!"), ovrimos_connect Подключение к серверу и выбор БД int ovrimos_connect (string host, string db. string user, string password) Возвращает дескриптор подключения или FALSE — при ошибке. В аргументе host указывается имя сервера или его IP-адрес, в db указывается либо имя БД, либо номер порта подключения. Также указываются имя пользователя и его пароль. ovrimos_close Закрытие указанного подключения void ovrimos_close (int connection) Все незавершенные транзакции отменяются. ovrimos_close_all Закрытие всех подключений void ovrimos_close_a"ll (void) Все незавершенные транзакции отменяются. ovrimos_cursor Получение типа курсора int ovrimos_cursor (int resulted) Полезно при выполнении позиционированных обновлений или удалениях. ovrimos_longreadlen Установка числа возвращаемых байтов для длинных полей int ovriraos_longreadlen (int result_id, int length) Для полей типа LONG VARCHAR и LONG VARBINARY, по умолчанию, возвращается 0 байтов, но можно установить произвольное значение в аргументе length. ovrimos_prepare Подготовка запроса int ovrimos_prepare (int connection_id, string query) Возвращает FALSE (при ошибке) или дескриптор запроса, используемый для его последующего исполнения функцией ovrimos_execute(). <?php $conn=ovrimos_connect ovrimos_execute Выполнение подготовленного запроса int ovrimos_execute (int result_id [, array parameters_array]) Запрос должен быть предварительно подготовлен функцией ovrimos_ preparet). Возвращает TRUE или FALSE — при ошибке. Если запрос имеет параметры (обозначенные знаком вопроса), их значения передаются в массиве parameters_array. ovrimos_exec Выполнение запроса int ovrimos_exec (int connection_id, string query) Возвращает дескриптор возвращенного набора записей или FALSE - при ошибке. Запрос не должен содержать параметров. ovrimos_num_rows Получение числа измененных записей в БД int ovrimos_num_rows (int result_id) Функция возвращает число записей, которые были изменены запросом. <?php Sconn = ovrimos_connect ovrimos_num_fields Получение числа полей, возвращенных запросом int ovrimos_num_fields (int result_id) ovrimos_fetch_into Занесение записи в массив int ovrimos_fetch_into (int resu!t_id, array resu!t_array [, string how [, int rownumber]]) Функция сохраняет поля записи в массиве result_array, который должен передаваться по ссылке. Какая запись будет сохранена, указывается в аргументе how, который может принимать одно из значений: «Next» (по умолчанию), «Prev», «First», «Last», «Absolute» (для этого случая требуется указать номер записи в аргументе rownumber). Регистр не учитывается. Возвращает TRUE или FALSE — при ошибке. <?php $conn=ovrimos_connect ovrimos_fetch_row Получение записи int ovrimos_fetch_row (int result_id [, int how [, int rowjiumber]]) Выбирает запись из возвращенных запросом для того, чтобы ее данные можно было получить функцией ovrimos_resu"lt(). Возвращает TRUE или FALSE — при ошибке. <?рhр Sconn = ovrimos_connect ovrimos_result Получение поля записи int ovrimos_result (int resultjid, mixed field) Возвращает поле записи, возвращенной запросом. Поле может быть указано его именем (или порядковым номером, начиная с 1) в аргументе field. Запись должна быть предварительно выбрана функцией ovrimos_fetch_row(). ovrimos_result_all Распечатка результата запроса в таблице HTML int ovrimos_result_all (int resultjd [, string format]) Возвращает TRUE или FALSE — при ошибке. <?php Sconn = ovnmos_connect Далее приводится расширенная версия приведенного выше сценария, выводящая метаинформацию. Example 2. Ovnmos_result_all with meta-information ovrimos_field_num Получение порядкового номера поля int ovrimos_field_num (Int result_id. string fieldjiame) ovrimos_field_name Получение имени поля int ovrimos_field_name (int result^id, int fieldjiumber) Поле указывается его порядковым (начиная с 1) номером fieldjiumber. ovrimos_field_type Получение типа поля int ovrimos_field_type (int resu!t_id, int field_number) ovrimos_field_len Получение размера поля int ovrimos_fieldjen (int result_id, int field_number) ovrimos_free_result Уничтожение набора возвращенных записей int ovrimos_free_result (int result_id) ovrimos_commit Завершение транзакции int ovrimos_commit (int connection_id) ovrimos_rollback Отмена транзакции int ovrimos_rollback (int connection_id) |