Взаимодействие с базами данных

ODBC

В дополнение к поддержке обыкновенных драйверов 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 в виде
«DSN=DataSource:UID=UserName;PWD=Password».

В необязательном четвертом доводе дозволено указать тип курсора БД, и это зачастую помогает решить задачи с некоторыми БД; скажем, при попытке выполнения хранимых процедур (при вызове которых появляется оплошность типа: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it"), и в таких случаях может подмогнуть указание типа курсора SQL_CUR_ USE_ODBC. Тип курсора может быть указан одной из следующих констант:

  • SQL_CUR_USE_IF_NEEDED;
  • SQL_CUR_USE_ODBC;
  • SQL_CUR_USE_DRIVER;
  • SQL_CUR_DEFAULT.

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);
$item_val = odbc_result ($Query_ID. "id"):

Данные полей типа 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
("MyDSN"."root" "passI23"):
$rs = odbcjBxecdcnn. "SELECT * FROM tbll").
echo "Записей. ".
$nr = odbc_num_rows($rs).
echo ".иполей: ".
$nf - odbc_num_fields($rs);
// распечатать в виде [n]
'aaa'. '666'. 'ввв'. for($r=l; $r<=$nr; $r++)
{ // записи echo "\n[$r] ".
odbc_fetch_row($rs.$r).
for($f=l: $f<=$nf: $f++)
// поля echo "'",
odbc result(Srs.$f). "'.": }

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
( 'MyDSN"."root"."pass!23").
$rs = odbc_exec
($cnn."SELECT * FROM tbll").
for($r=l; $r<=odbc_num_rows
($rs): $r++) { odbc_fetch_into($rs.$r.$arr):
$ar[]=$arr
// внести комплект записей в двухмерный массив

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_BINMODE_PASSTHRU - пропускать двоичные поля;
  • ODBC_BINMODE_RETURN — возвращать двоичные поля как есть (по умолчанию); ,
  • ODBC_BINMODE_CONVERT - возвращать двоичные поля, конвертируя.

Пропуск (в нервом случае) обозначает, что при применении функции odbc_fetch_into() для полей этого типа будет возвращаться nycтая строка.

В последнем случае конвертация обозначает, что весь байт данных будет представлен двумя шестнадцатсричными цифрами, скажем, двоичный байт 00000001 будет представлен как "01", а 11111111 — как "FF".

Обработка длинных двоичных полей также зависит от параметра, установленного функцией odbcJongreadlen().

Binmode

longreadlen

Результат

ODBC BINMODE PASSTHRU

0

Пропускать

ODBC BINMODE RETURN

0

Пропускать

ODBC_BINMODE_CONVERT

0

Пропускать

ODBC BINMODE PASSTHRU

>0

Пропускать

ODBC BINMODE RETURN

>0

Возвращать как есть

ODBC BINMODE CONVERT

>0

Конвертировать

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
в SQLSetConnectOptionO: 102
// Значение 1 для
SQL_AUTOCOMMIT - SQL_AUTOCOMMIT_ON.
// Дальнейшая строка имеет тот же результат, что и
// odbc_autocorrmit($conn. TRUE);
odbc_setoption (Sconn. 1. 102. 1):
// Номер параметра SQL_QUERY_TIMCOUT
в SQLSetStmtOption(): 0
// Дальнейшая строка устанавливает
предел выполнения запроса в 30 сек.
tresult = odbc_prepare ($conn. $sq!):
odbc_setoption (Sresult. 2. 0. 30). odbc_execute
(Sresult):

odbc_tables

Приобретение списка таблиц источника данных

int odbc_tables (Int connection_id [, string qualifier [,

string owner [, string name [, string table_type>)

Возвращает в комплекте записей перечисление имеющихся в источнике данных connection_id таблиц (определенного типа table_type). Возвращаемый комплект записей содержит следующие нуля:

  • TABLE_QUALIFIER;
  • TABLE_OWNER;
  • TABLE_NAME — имя таблицы;
  • TABLE_TYPE — тип таблицы; скажем, «TABLE», «VIEW»;
  • REMARKS — примечания; скажем, «MySQL table».

Возвращаемый комплект записей сортируется в порядке: TABLE_TYPE, TABLE_ QUALIFIER, TABLEJJWNER, TABLE_NAME.

Доводы owner и name могут содержать образцы («%» заменяет нуль и больше символов, а «_» — один символ).

Дабы получить перечисление допустимых значений доводов qua- / li-ficr, owner и table type, применяется дальнейшая семантика:

  • Если qualifier = "%", a owner и name — пустые строки, то возвраща- \ ется комплект записей, содержащий перечисление допустимых квали-фикаторов источника данных. (Все поля, за исключением TABLE_ QUALIFIER содержат пустые значения NULL.) Обыкновенно это каталоги (БД), но не все БД применяют их.
  • Если owner = "%", a qualifier и name — пустые строки, то возвращается комплект записей, содержащий перечисление обладателей источника данных. (Все поля, за исключением TABLE_OWNER, содержат пустые значения NULL.)
  • Если tablejtype = "%", a qualifier, owner и name — пустые строки, то возвращается комплект записей, содержащий перечисление допустимых типов таблиц источника данных. (Все поля, за исключением TABLE_TYPE, содержат пустые значения NULL.)

Если 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 и содержит следующие поля:

  • TABLE_QUALIFIER;
  • TABLE_OWNER;
  • TABLEJJAME;
  • GRANTOR;
  • GRANTEE;
  • PRIVILEGE;
  • IS_GRANTABLE.

Доводы 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 и содержит следующие нуля:

  • TABLE_QUALIFIER;
  • TABLE JMIER;
  • TABLE NAME;
  • NONJJNIQUE;
  • INDEX_QUALIFIER;
  • INDEX_NAME;
  • TYPE;
  • SEQ_IN_INDEX;
  • COLLATION;
  • CARDINALITY;
  • PAGES;
  • FILTER_CONDITION.

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 и содержит следующие поля:

  • TABLE_QUALIFIER;
  • TABLE_OWNER;
  • TABLE_NAME;
  • COLUMN_NAME;
  • DATA_TYPE;
  • TYPE_NAME;
  • PRECISION;
  • LENGTH;
  • SCALE;
  • RADIX;
  • NULLABLE;
  • REMARKS.

Доводы 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 и содержит следующие поля:

  • TABLE_QUALIFIER;
  • TABLEJMER;
  • TABLE_NAME;
  • GRANTOR;
  • GRANTEE;
  • PRIVILEGE;
  • IS_GRANTABLE.

Довод column_name может содержать образцы («%» заменяет нуль и больше символов, а <<_» — один символ).

odbc_gettypeinfo

Определение типов поддерживаемых данных

int odbc_gettypeinfo (Int connectien_id [, int data_type])

Возвращает комплект записей, содержащий перечисление поддерживаемых БД типов данных; если нужно узнать, поддерживается ли определенный тип данных, его нужно указать в доводе data_type. При ошибке возвращается FALSE.

А В комплекте записей возвращаются следующие поля:

  • TYPEJIAME;
  • OATA_TYPE;
  • PRECISION;
  • LITERAL_PREFIX;
  • LITERAL_SUFFIX;
  • CREATE_PARAMS;
  • NULLABLE;
  • CASE_SENSITIVE;
  • SEARCHABLE;
  • UNSIGNED_AnRIBUTE;
  • MONEY;
  • AUTO_INCREMENT;
  • LOCAL_TYPE_NAME;
  • MINIMUM_SCALE;
  • MAXIMUM_SCALE.

Записи сортируются по полям DATA_TYPE и TYPE_NAME.

odbc_primarykeys

Подбор поля, способного быть первичным ключом таблицы

int odbc_primarykeys (int connection_id, string qualifier, string owner, string table)

Возвращает комплект записей, содержащий список полей, которые могут претендовать на роль первичного ключа таблицы table. При ошибке возвращается FALSE.

В комплекте записей возвращаются следующие поля:

  • TABLE_QUALIFIER;
  • TABLE_OWNER;
  • TABLEJAME;
  • COLUMN_NAME;
  • KEYJEQ;
  • PK_NAME.

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.

В возвращаемом комплекте записей содержатся следующие поля:

  • PKTABLE_QUALIFIER;
  • PKTABLE_OWNER;
  • PKTABLEJJAME;
  • PKCOLUMN_NAME;
  • FKTABLE_QUALIFIER;
  • FKTABLE_OWNER;
  • FKTABLE_NAME;
  • FKCOLUMN_NAME;
  • KEYJEQ;
  • UPDATE_RULE;
  • DELETE_RULE;
  • FK_NAME; . PKJWME.

odbc_procedures

Приобретение списка хранимых процедур

int odbc_procedures (int connection_id [, string qualifier [, string owner [, string name]]])

Возвращает список хранимых процедур name в комплекте записей, содержащем следующие поля:

  • PROCEDURE_QUALIFIER;
  • PROCEDUREJMER;
  • PROCEDURE_NAME;
  • NUMJNPUTJ» ARAMS;
  • NUM_OUTPUT_PARAMS;
  • • NUM_RESULT_SETS;
  • REMARKS;
  • PROCEDURE_TYPE.

Доводы owner и name могут содержать образцы («%» заменяет нуль и больше символов, а «_» — один символ).

odbc_procedurecolumns

Приобретение списка параметров хранимых процедур

int odbc_procedurecolumns (int connection_id [, string qualifier [, string owner [, string proc [, string column>)

Возвращает список хранимых процедур (с их входными и выходными параметрами и изложением возвращаемых ими полей) в комплекте записей, содержащем следующие поля:

  • PROCEDURE_QUALIFIER;
  • PROCEDURE J1WNER;
  • PROCEDUREJAME;
  • COLUMN_NAME;
  • COLUMN_TYPE;
  • DATATYPE;
  • TYPEJAME;
  • PRECISION;
  • LENGTH;
  • SCALE;
  • RADIX;
  • NULLABLt;
  • REMARKS.

Записи сортируются по полям 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), содержащем следующие нуля:

  • SCOPE;
  • COLUMN_NAME;
  • DATAJYPE;
  • TYPE_NAME;
  • PRECISION;
  • LENGTH;
  • SCALE;
  • PSEUDO_COLUMN.

MySQL

Эти функции дозволяют трудиться с серверами БД 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
Slink = @mysql_connect ("serve"", "user", "passed")
or die ("Немыслимо подключиться");
print ("Подключение к MySQL успешно"):
mysql_close ($link); ?>

См. также: 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_pconnect()).

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
('localhost'. 'myname'. 'secret').
$db_list = mysqljist_dbs($link)
while ($row = mysql_fetch_object
($db_list)) { echo $row->Database .
"\n": }

В данном примере также может применяться функция 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);
mysq]_connect('dbhost'. 'username'. 'password').
Sdbjist = mysql Jist_dbs():
for ($1 = 0. $1 < ($cnt= mysql_num_rows($cibjist)),
$1 + 1-)
{ echo mysql_db_name($db_list. $i) .
"\n"; } ?>

Ранее функция именовалась 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 /
Slink = mysql_pconnect
("localhost". "me", "paswd"): /
if (mysql_create_db ("my_db"))
{ print ("БД сделана \n");
} else {
printf ("Оплошность: Xs\n". mysql_error
()). } ?>

Ранее функция именовалась 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(). Дальнейший пример распечатывает имена всех БД и таблиц, в них содержащихся.

<?
Slink = mysql_connect
('127 0.0 Г. 'root1. '157984').
Sdbjist = mysql_list_dbs($link).
while ($r_db = mysql_fetch_object(SdbJisU)
{ echo $r_db->Database . "\n":
// распечатать список таблиц Stbljist =
mysql_lTst_tables(Sr_db->Database):
for($i =0: $i < mysql_num_rows
($tbl_list): Si++) {
echo " - ". mysql_tablename
($tbl_list. $1). "\n": } ?>

Ранее функция именовалась mysql_listtables().

mysql_tablename

Приобретение имени таблицы

string mysql_tablename (int result, int i)

Функция применяется для приобретения имени таблицы (с номером i) из комплекта записей, возвращенного функцией mysql_list_tables().

<?php
mysql_connect ("localhost:3306"):
Sresult = mysql_list_tables ("mydb"):
$1 = 0; while
(Si < mysql_num_rows
(Sresult)) { $tb_names[$i] =
mysql_tablename (Sresult. Si):
echo Stb_names[Si] . "<BR>";
$l++; } ?>

mysql_query

Выполнение запроса к БД

int mysql_query (string query [, int linkjdentifier])

Посылает запрос нынешней БД, энергичной для нынешнего подключения либо указанного в link_identifier. Если подключений не имеется, то неявно вызывается функция mysql_connect() с параметрами по умолчанию.

Подметьте: SQL-выражение, указанное в доводе query, не должно оканчиваться точкой с запятой. Если выражение содержит ошибки

либо при его выполнении появляются ошибки (скажем, если нынешние привилегии не дозволяют исполнить запрос), то функция возвращает FALSE.

Если запрос благополучно выполнился, то возвращается комплект записей (не забывайте, он также может содержать 0 записей), тот, что может быть обработан функциями:

  • mysql_resul t() — получить элемент комплекта записей;
  • mysql_fetch_array() — внести запись в массив;
  • mysql_fetch_row() — внести запись в нумерованный массив;
  • mysql_fetch_assoc() — внести запись в ассоциативный массив;
  • mysql_fetch_object() — внести запись в объект.

Дабы узнать, сколько записей было возвращено командой 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
Sconn = mysql_connec
t("hostaddress". "username". "password");
mysql_select_db("database".Sconn):
$rs = mysql_query("SELECT
FROM Accounts".$conn);
$N = mysql num_rows($rs),
echo "Каждого записей: $N". ?>

См. также: 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
Slink = mysql_pconnect
("сервер", "имя", "пароль")
or die ("Нет коннекта"):
mysql_select_db ("samp_db")
or die ("Базу не выбрать").
Squery = "SLLtCT lastjname. firstjname
FROM friends";
$result = mysql_query i$query)
or die ("Query failed").
# отобразить записи в обратном порядке
for ($i = mysql_num_rows ($re.sult) - 1
: $1 >=0; $1--) { if (!mysql_data_seek
(Sresult. $1)) {
printf ("Cannot seek to row 5!d\n". $1);
continue: )
if(!($row = mysql_fetch_object (SresulL)))
continue.
pnntf ("Is s<BR>\n". $row->labt_name.
$row->first_name): }
mysql free_result (Sresult). ?>

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_connect (Shost. $use<\ Spassword).
Sresult = mysql_db_query ("database".
"select user_id. full name from tbl");
while ($row = mysql_fetch_array (Sresult))
{ echo "userjid- ".$row["user_id"].
"<brn". echo "user_id: ".$row[0] "<br>\n";
echo "fullname: ",$row["fullnatne"]."<br>\n";
echo "fullname: ".$row[l]."<br>\n"; }
mysql_free_result (Sresult). ?>

См. также: 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
mysql_connect ($host. $user. Spassword):
$result = mysql_db_query
("database"."select * from table").
while ($row = mysql_fetch_assoc
(Sresult)) { echo $row["user_id"];
echo $ro\4' fullname"] }
mysql_free_result (Sresult); ?>

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_connect ($host. $user. $password).
Sresult = mysql_db_query
("database", "select * from table"):
while ($row = mysql_fetch_object
(Sresult)) {
echo $row->user_id.
echo $row->fullname: }
mysql_free_result (Sresult): ?>

См. также: 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):
S'-sJen - mysql_fetch_lengths($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.

Возвращаемый объект имеет следующие свойства (и содержит информацию):

  • name — имя поля;
  • table — имя таблицы, которой принадлежит поле;
  • raax_length — максимальная длина поля;
  • not_null — 1, если полю разрешено пустое значение;
  • primary_key — 1, если поле является ключевым (primary key);
  • unique_key — , если в нуле допускаются только уникальные значения (unique key);
  • multiple_key — 1, если в поле возможно иметь повторяющиеся значения;
  • numeric — 1, если поле числовое;
  • blob — 1, если поле имеет тип BLOB;
  • type — чип поля;
  • unsigned — 1, если поле числовое беззнаковое;
  • zerofill — 1, если поле заполняется нулями (zero-filled).

<?php /
mysql_connect (Shost. $user. Spassword)
or die ("Could not connect"):
\ $result = mysql_db_query
("database", "select * from table")
or die ("Query failed"): \ \
for($i =0: $1 < mysqljium_fields
(Sresult): $i++)
{ echo "Метаданные поля $i:<BR>\n":
$meta = mysql_fetch_field
(Sresult): if (!$meta) { echo
"No information available<BR>\n";
echo "<PRE> name $meta->
name table- $meta->table
type: $meta->type
roax_length: $meta->
max_length notjiull
$meta->not_pull
zerofill. $meta->zerof ill
umque_key. $meta->umque_key
pnmary_key: $meta->prTinary_key
|4ultiple_key $meta->multiple_key
numeric $meta->numeric
unsigned $meta->unsigned
blob $meta->blob </PRE>". }
mysql_free_result (Sresult): ?>

См. также mysql_field_seek().

mysql_field_seek

Перемещение к указанному полю

int mysql_field_seek (int result, int field_offset)

Функция является излишней, и следующие фрагменты равнозначны:

$meta = mysql_fetch_field
(Sresult. field_offset): и mysql_fTeld_seek
(Sresult. field_offset)
imeta - mysql_fetch_field ($result).

Эта функция влияет только на 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
( "users", "SELECT user_id. user-name
FROM users"):
echo mysql_field_name($res. !)
// выведет username

Ранее функция именовалась 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_ccnnect (" local host.3306").
mysql_select_db ("mydbl"):
$result = mysql_query ("SELECT * FROM tbll");
Sfields = mysql_num_fields (Sresult):
Srows mysql nurn_rows ($result);
Si = 0;
Stable = mysql_field_table
(Sresult. $1).
echo "Таблица 'Stable' имеет
Sfields полей и Srows записей<ВК>":
echo "Конструкция таблицы: <BR>":
while ($1 < Sfields) {
Stype = mysql_field_type
(Sresult. Si):
$name = mysql_field_name
(Sresult. Si):
Slen = mysql_field_len
(Sresult. Si):
Sflags - mysql_field_flags
(Sresult. Si):
echo Stype." ".$name." ".Slen."
".Sflags."
<BR>": Si++: mysql_close(): ?>

Ранее функция именовалась 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
('localhost'. 'myname'. 'secret');
Sfields = mysql_list_fields
("databasel", "tablel", $link):
Scolumns = mysql_num_fields($fields);
// число полей в таблице
// распечатать имена всех полей
таблицы for ($1 = 0: $1 < Scolumns; $i++)
{
echo mysql_field_name
($fields. $1) . "\n".; }

Ранее функция именовалась 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_connect();
mysql_select_db("non_exi stent_db"):
echo mysql_errno().":
".mysql_error()."<BR>"
mysql_query("SELECT *
FROM non_existent_table"):
echo mysql_errno() ";
".mysql_error().
"<BR>"; ?>

См. также mysql_error().

mysql_error

Приобретение сообщения об ошибке MySQL

string mysql_error ([int link_identifier])

Возвращает сообщение об ошибке, произошедшей в ходе выполнения последней функции MySQL, либо пустую строку, если ошибки не случилось.

<?php
mysql_ccnnect().
mysql_select_db("non_existent_db");
echo mysql_errno().":
" mysql_error() "<BR>".
$conn = mysql_query("SELECT *
FROM non_exibtent_table");
echo mysql_errno() ": ",mysql_error()
"<BR>"; ?>

См. также mysql_errno().

mSQL

Данная группа функций разрешает трудиться с серверами БД 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_connect ("localhost")
$result = msql_list_tables ("myDB"):
$1 = 0.
while ($1 < msqljiumrovvs
($result)) {
$tb_names[$i] =
msql_tablename (Sresult. $i):
echo $tb_names[$i] .
"<BR>":1T++; } ?>

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 записей), тот, что может быть обработан функциями:

  • msql_result() — получить элемент комплекта записей:
  • msqljretch_array() - внести запись в массив;
  • msql _fetdn_ra* () - внести запись в нумерованный массив;
  • msql_fetch_object() - внести запись в объект.

Дабы узнать, сколько записей было возвращено командой 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.

Возвращаемый объект имеет следующие свойства (и содержит информацию):

  • name — имя поля;
  • table — имя таблицы, которой принадлежит поле;
  • notjiull — 1, если полю разрешено пустое значение;
  • primary_key — 1, если поле является ключевым;
  • unique_key -- 1, если в поле допускаются только уникальные значения;
  • type — тип поля.

См. также 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, выдавались в виде предупреждений, но теперь появление ошибок надобно выявлять независимо.

PostgreSQL

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
("host=myHost port=myPort tty=my
TTY opfons--myOptions user-myUser
password=myPassword dbname=myDB");

Для применения функций интерфейса огромных объектов их нужно помещать вовнутрь блоков транзакций. Блок транзакции начинается с команды begin и завершается командами commit либо end. Отмена транзакций выполняется командами rollback либо abort.

<?php
$database = pg_Connect
("dbname=jacarta");
pg_exec (Sdatabase, "begin"):
$oid = pgjocreate (Sdatabase):
echo ("$oid\n");
$handle = pg_loopen ($database, $01d. "w"):
echo ("$handle\n"): pgjownte (Shandle. "gaga"):
pg_loclose ($handle): pg_exec
($database. "commit"): ?>

pg_connect

Подключение к серверу PostgreSQL

int pg_connect (string conn_string)

Возвращает дескриптор подключения к БД (применяемый последующими функциями) пли FALSE — при ошибке. В доводе указываются параметры подключения: host, port, tty, options, user, password, dbname.

<?php
Sdbconn = pg_Connect
("dbname=mary");
Sdbconn2 = pg_Connect
("host=localhost port=5432 dbnamemary"):
$dbconn3 = pg_Connect
("user=mb password=baaaa dbname=mary "):
?>

Устаревший синтаксис:

Sconn = pg_connect
("host", "port", "options", "tty". "dbname").

См. также 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
("host", "port", "options", "tty". "dbname")

См. также 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().

Если запрос удачно выполнился, то возвращается комплект записей, тот, что может быть обработан функциями:

  • pg_result() — получить элемент комплекта записей;
  • pg_fetch_array() — внести запись в массив;
  • pg_fetch_row() — внести запись в нумерованный массив;
  • pg_fetch_object() — внести запись в объект.

Дабы узнать, сколько записей было возвращено командой 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 // скоростное добавление
строк в таблицу $conn = pg_pconnect
("dbname=foo");
pg_exec($conn. "create table tbl
(a int4. b char(16). d floats)"):
pg_exec($conn. "copy tbl from stdin"):
// начать запись pg_put_line
($conn. "3\thello world\t4.5\n").
pg_put_line
($conn. "4\tgoodbye world\t/.ll\n")
, pg_put_line($copn. "\\.\n"):
pg_end_copy($conn), ?>

См. также 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
Sresult = pg_exec ($conn.
"INSERT INTO publisher VALUES
('Author')"): $rows_affected =
pg_ondtuples ($result):
echo "Число исполненных изменений:
". $rows_affected: ?>

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
Jconn = pg_pconnect
("dbname=publisher");
if CSconn) {
echo "An error occured.\n"; exit; }
Sresult -= pgjxec
(Sconn. "SELECT * FROM Authors");
if (!$result) {
echo "An error occured.\n";
exit: }
$arr = pg_fetch_array
(Sresult. 0); echo $arr[0] .
" либо ". $arr["author"] :
// дозволено и так
for($i=0; $row = @pg_fetch_array
(Sresult.Si); $i++)
{ echo $row["author"]; } ?>

См. также pg_fetch_row().

pg_fetch_row

Занесение записи в нумерованный массив

array pg_fetch_row (int result, int row)

Возвращает массив, соответствующий записи с номером row, из комплекта записей result, возвращенных запросом, либо FALSE, если такой записи не имеется.

<?php
if (!($conn = pg_pconnect
("dbname=publisher"))) {
echo "An error occured.\n";
exit. }
if (! (Sresult = pgjxec
($conn. "SELECT * FROM authors")))
{
echo "An error occured.\n";
exit: } $num = pg_numrows
(Sresult);
for ($i=0: Si<$num: Si++)
{ $r = pg_fetch_row(Sresult. Si).
for ($j=0: $j<count($r): Sj++) {
echo "SrLSj]&nbsp,"; }
echo
"<BR>"; } ?>

См. также: 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".
$db_conn = pg_connect
("host-localhost port=5432
dbnameSdatabase");
if (!$db_conn):
?><Hl>Failed connecting to
postgres database
<?php echo $database ?>
</Hl> <?php
exit: endlf:
$qu = pg_exec
($db_conn, "SELECT *
FROM verlag ORDER BY autor");
for ($row = 0: Sdata =
@pg_fetch_object ($qu. $row).
$row++){ echo $data->autor."
("; \ echo Sdata->jahr ."):
": echo $data->titel."<BR>": } ?>
<PRE><?php
$fields[] = Array
("autor". "Author"), SfieldsL]
= Array ("jahr". " Year"),
Sfieldst] = Array ("titel". " Title");
for ($row = 0: Sdata =
@pg_fetch_object (Jqu. $row);
$row++) : reset (Sfields);
while (list (,$item) = each (Sfields)):
echo $item[l].": ".$data->$item[0].
"\n", endwhile: endfor;
echo "</PRE>";
pg_freeResult ($qu);
pg_close ($db_conn): ?>

См. также: 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 Server

Ранее для доступа к 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
("select @@rowcount as rows". $db):
Srows = mssql_result
($rsRows. 0. "rows"):

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.

Возвращаемый объект имеет следующие свойства (и содержит информацию):

  • name — имя поля. Если поле — итог выполнения функции, имя возвращается в виде computed$N, где #N — порядковый номер;
  • column_source — имя таблицы, которой принадлежит поле;
  • maxjlength — максимальная длина поля;
  • numeric — 1, если поле числовое.

См. также 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

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
$host="locdlhost:c:
\\IB6\\data\\db.gdb": // WinNT путь
$dbh = ibase_connect
($host. Susername, Spassword).
Sstmt = 'SELECT * FROM tblname';
$sth = ibasejjuery (Jdbh, $stmt);
while ($row = ibase_fetch_object
($sth)) { print $row->email - "\n". }
ibase_close ($dbh); ?>

См. также 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
Supdates = array
( 1 => 'Enc'. 5 => 'Filnp1. 7 => 'Larry1 ),
$query = ibase_prepare("UPDATE tbl
SET A = ? WHERE Z = ?"):
while (list($a. $r) = eachdupdates))
{ ibase_execute($query. $r. $a). } ?>

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
$dbh = ibase_connect
($host. Susername, Spassword);
$stmt = 'SELECT * FROM tblname1;
$sth = ibase_query ($dbh, $stmt).
while ($row = ibase_fetch_object ($sth))
{ i print $row->email . "\n": )
ibase_close ($dbh); I ?>

См. также ibase_fetch_row().

ibase_feld_info

Приобретение информации о поле записи в массиве

array ibase_field_info (int result, int field number)

Возвращает массив, содержащий элементы name, alias, relation, length, type.

$rs=ibase_query
("Select * from something"):
$coln - ibase_num_fields($rs):
for ($i=0 ; $1 < $coln : $i++)
{ $col_info = ibase_field_info
($rs. $1); echo "имя поля:
".$col_info['name']."\n";
echo "синоним: ".$col_info['alias']."\n":
echo "реляция: " $col_info['relation']."\n":
echo "размер: ".$col_info['length']."\n":
echo "тип:' ".$col_info['type']."\n": }

ibase_timefmt

Установка формата возвращаемых даты и времени

int ibasejtimefmt (string format [, Int columntype])

Морально поля даты и времени форматируются функцией языка С strftime(), а с подмогой данной функции дозволено установить вид форматирования возвращаемых запросами данных. В строке format, дается образец, по которому производится форматирование. Довод columntype указывает, формат каких именно полей устанавливается (только с InterBase версии 6 либо выше), и может принимать константные значения IBASE_TIMESTAMP (по умолчанию), IBASE_DATE и IBASEJIME.

<?php
// формат вида '04 hours 54 minutes'.
ibase_timefmt("*H hours 2M minutes"
. !BASE_TIME) ?>

Умолчания дозволено установить параметрами конфигурации (php.ini): ibase.timestampformat, ibase.dateformat и ibase.timeformat.

ibase_num_fields

Приобретение числа полей в комплекте записей

int ibase_num_fields (int result_id)

В текущее время функция еще не работоспособна.

<?рhр
$dbh = ibase_connect
(Shost, Susername. Jpassword);
Sstmt = 'SELECT * FROM tblname':
$sth = ibasejquery ($dbh. Sstmt);
if dbase_num_fields($sth) > 0)
{ while ($row = ibase_fetch_object
(Ssth)) { print $row->email "\n": } }
else { die ("No Results were
found for your query"); }
ibase_close ($dbh); ?>

См. также ibase_field_info().

ibase_errmsg

Приобретение сообщения об ошибке string ibase_errmsg (void)

Поля BLOB

В PHP имеются следующие функции для работы с полями BLOB БД InterBase (документация для них пока отсутствует):

  • ibase_blob_create — создает поле BLOB, которое после этого может быть сохранено запросом (возвращенный дескриптор передастся как параметр запроса);
  • ibase_blob_open -- открывает возвращенное запросом поле BLOB для операции;
  • ibase_blob_close — закрывает поле BLOB;
  • ibase_blob_add — добавляет в конец поля BLOB данные;
  • ibase_blob_import — записывает содержимое открытого файла в поле BLOB;
  • ibase_blob_get — читает содержимое поля BLOB;
  • ibase_blob_echo — выводит содержимое поля BLOB;
  • ibase_blob_info;
  • ibase_blob_cancel.

От того что исключительной информацией об этих функциях является j пример из начальных текстов, он приводится дальше.

$cnn=ibase_connect("localhost.F:
\interbase\data\aaa\iq.gdb".
"sysdba'V'masterkey") or die
("Can't connect"): ibase_query
("create table tbl
(v_integer integer. v_blob blob)"):
ibase_cominit():
Sname =
"F:\\php_src\\ext\\interbase\\blob.tmp";
$f = fopen($name."r");
$bl_s - ibase_blob_import($f);
ibase_query("ir,sert into tbl
(v_integer. v_blob) values (1. ?)", $bl_s):
$bl_h = ibase_blob_create(),
Sfp = fopen($name."r"): while
($piece = fread($fp. 1024))
{
ibase_blob_add($bl_h. $piece):
} fclosedftmp);
ibase_blobadd
($bl_h.
"+-- -----.....----------------------
+\n"):
$bl_s = ibase_blob_close
($bl_h).
ibase_query("insert into tbl
(v_integer. v_blob) values
(2. ?)", $bl_s);
$q = ibase_query
("select v_blob from tbl where
vjnteger = 2"):
$row = ibase_fetch_object
($q.lBASE_TEXT):
echo $row->V_BLOB:
bi$q = ibase_query
("select v_blob from tbl
where v_integer = 2"):
$row = ibase_fetch_object($q):
i base_blob_echo
($ row->V_BLOB):
$q = ibase_query
("select v_blob from tbl where
v_integer = 2").
$row = ibase_fetch_object($q);
$bl_h = ibase_blob_open
($row->V_BLOB);
while($piece = ibase_blob_get
($bl_h. 1024))
$blob = $piece. ibase_blob_close
($bl_h):
ibase_free_result($q): ibase_close(),
?>

Informix

Присутствующий модуль растяжения 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
("mydb@ol_srv". "itsme". "mypassword").
ifx__close($conn_id):

См. также: 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. распечатать всю таблицу
"orders" в виде html ifx_textasvarchar(l).
// use "text mode" for blobs $res_id =
ifx_query("select * from orders". Sconnjid).
if (! Sresjid) { pnntf(
"Can't select orders : lsn<br>ls<br>\n"
. ifx_error()). ifx_errormsg().
dieT } ifx htmltbl_result
($res_id "border=\"l\"");
1Т~х_(тре_г_)
// Пример 2 добавление записей
в таблицу "catalog"
// сотворить blob поля
$te<tid - ifx_create_blcb(0, 0.
"Text column in memory"):
Sbyteid = ifxj:reate__blob
(l. 0. "Byte column in memory"):
// внести blob id в массив $blobidarray[]
= Stextid. $blobidarray[] = $byteid,
// исполнить запрос
$query = "insert into catalog
(stockjium, manu_code. "
. "cat_descr. cat_pictun;) val ues
(1.' HRO'.7. ?)":
$res_id = ifx_query($query.
$conn_id. Sblobidarray).
if (! $res_id)
{ .. error . . }
i fx_free_result($ resj d):

См. также 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],

где х — один из символов, обозначающих:

  • пробел — без ошибки;
  • Е — оплошность;
  • N — огромнее нет данных;
  • W — предупреждение;
  • ? — неопределенное сообщение.

Если х-символ не пробел, то 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 II

Для применения этих функций нужно скомпилировать РНР

с помощью 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
$link = ingres_connect
("mydb". "user", "pass")
or die ("Could not connect");
print ("Connected successfully"):
ingres_close (Slink).
// либо легко ingres_close(); ?>

См. также: 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 connect
(Sdatabase. $user. $password),
ingres_query ("select * from table"),
while ($row = ingres_fetch_row()) {
echo $row[l];
echo $row[2], } ?>

См. также: 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_connect
(Sdatabase. Suser, Spassword):
ingres_query ("select * from table");
while (Srow = lngres_fetch_row()) {
echo $row[l]: // первое поле записи
echo $row[2]: } ?>

См. также: 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):
Sresult = ingres_fetch_array():
$foo = $result["f"]; $bar = $result["b"];

Подметьте, что функция выполняется лишь незначительно неторопливей, чем ingres_fetch_object(), но предоставляет дополнительную функциональность.

<?php
ingres_connect (Sdatabase. Suser. Spassword):
ingres_query ("select * from table"),
while ($row = ingres_fetch_array()) {
echo $row["user_id"]:#
используем ассоциативный массив
echo $row["fullname"]:
echo $row[l]; #
используем нумерованный массив
echo $row[2]: } ?>

См. также: 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_connect ($database. $user.
$password):
ingres_query ("select * from table");
while ($row = ingres_fetch_object())
{ echo $row->user_id;
echo $row->fullname; } ?>

См. также: 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

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.

Возвращаемый объект имеет следующие свойства (и содержит информацию):

  • name — имя поля. Если поле — итог выполнения функции, имя возвращается в виде computed#N, где #М — порядковый номер;
  • column_source — имя таблицы, которой принадлежит поле;
  • numeric — 1, если поле числовое;
  • type — тип поля.

См. также 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().

Oracle

Приблизительный пример работы с БД:

<?php
putenv( "ORACLE_SIDORACLE");
puterw("ORACLE_HOME=
/opt/oracle/oracle/8.0.3");
$conn = ora_login("user_nam". "passwd"):
// Sconn - ora_login
("user_nam@server", "passwd");
// либо так $curs = ora_open($conn).
ora_comrntoff($conn):
$query = "select * from t";
ora_parse($curs. $query);
ora_exec($curs):
// ora_do(Sconn. $query);
// короткая версия запроса
$ncols = orajiumcols(Scurs);
// число полей Snrows =
ora_numrows(Scurs);
// число записей
$hdr=TRUE:
while (ora_fetch(Scurs))
{ // дальнейшая запись
if(Shdr) // выводить заголовок
только в начале
for (Si=0; $i<$ncols: Si++)
pnntf("[Si] Its Us). \n". ora_columnname
($curs. $1).
ora_columntype(Scurs. $1))
: $hdr=FALSE. for ($1=0; Si
<Sncols; $l++)
print ora_getcolumn(Scurs.$i).
"; "; // поле print "\n"; } ?>

Ora_Logon

Подключение к серверу Oracle

int orajogon (string user, string password)

Возвращает дескриптор подключения к БД либо FALSE — при ошибке.

Подключения также могут создаваться с применением синтаксиса SQL*Net с указанием TNS имени пользователя user в виде:

Sconn = Ora_Logon
( "system/user@host" . "pass" );

Если имеются не-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)

Функция является комбинацией 3 функций: 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_parse(Scurs. "declare tmp INTEGER; "
"begin tmp :- :in; :out :- tmp; :x := 7.77; end;"):
ora_bind($curs. "result". ":x". $len. 2).
ora_bind($curs. "input", "in". 5. 1);
ora_bind($curs. "output". ";out". 5. 2).
Sinput = 765; ora_exec($curs);
echo "Result; tresult; Out: Soutput: In: $input":
?>

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_fetch_into($cursor. &$results):
echo $results[0]. $results[ll: ?>

Подметьте, что массив нужно передавать по ссылке.

См. также: 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)

Возвращаемая строка может иметь следующие значения:

  • «VARCHAR2»;
  • «VARCHAR»;
  • «CHAR»;
  • «NUMBER»;
  • «LONG»;
  • «LONG RAW»;
  • «ROWID»;
  • «DATE»;
  • «CURSOR».

Oracle 8

Эта группа функций дозволяет обращаться к серверам БД Oracle 8 и Oracle 7, применяя Oracle 8 Call-Interface (OCI8). Для этого требуются клиентские библиотеки Oracle 8.

Это растяжение больше функционально, нежели стандартное; оно поддерживает связывание переменных РНР с переменными Oracle, имеет полную поддержку типов LOB, FILE, ROWID и разрешает применять определяемые пользователем переменные.

До применения этого растяжения нужно установить параметры окружения Oracle. Это включает установку следующих системных переменных:

  • ORACLEJOME;
  • ORACLEJID;
  • LD_PRELOAD;
  • LD_LIBRARY_PATH;
  • NLS_LANG;
  • ORAJLS33.

Позже этого нужно добавить в группу пользователей oracle пользователя (обыкновенно nobody либо www), от имени которого запускается РНР (web-сервер).

OCIServerVersion

Приобретение строки информации сервера

string OCIServerVersion (int conn)

<?php
$conn = OCILogonC'scott"."tiger");
print "Server Version "
. OCIServerVersionUconn):
OCILogOff($conn): ?>

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 = "":
$cl = ocilogonC'scott". "tiger". $db):
/'$c2 = ocilogonC'scott"."tiger".$db);
// для сопоставления
$c2 = ocinlogonC'scott". "tiger".$db):
function create_table(Sconn)
{ Sstmt = ociparse($conn.
"create table scott hallo (test
varchar2(64))");
ociexecutetSstmt):
echo Sconn." Таблица сделана \n\n". , }
function drop_table($conn)
{ Sstmt = ociparse($conn."drop
table scott hallo"):
ociexecute($stmt).
echo Sconn." dropped table\n\n": ! }
function insert_data(Sconn)
{ Sstmt = ociparse(Sconn."insert
into scott.hallo
valuest'Sconn' [j ' ' | to_char
(sysdate. 'DD-MON-YY HH24:MI:SS'))"):
ocie/ecute(Sstmt.OCI_DEFAULT).
echo Sconn." inserted hallo\n\n": }
function delete_data(Sconn)
{ Sstmt = ociparse
(Sconn."delete from scott.hallo");
ociexecute(Sstmt.OCI_DEFAULT);
echo Sconn." deleted hallo\n\n"; }
function commit(Sconn)
{ ocicommit(Sconn);
echo Sconn." committed\n\n": }
function roll back(Sconn)
{ ociroll back(Sconn):
echo Sconn " rollback\n\n"; }
function select_data($conn)
{ Sstmt = ociparse
($conn."select * from scott.hallo"):
ociexecute($stmt.OCI_DEFAULT).
echo $conn."---selecting\n\n";
while (ocifetch($stmt))
echo Sconn." <".ociresult
(Sstmt."TEST").">\n\n":
echo Sconn "—done\n\n"; }
create_table($cl); insert_data($cl):
selectjJata(tcl): select_data($c2):
roliback(Scl):
select_data($cl). select_data($c2):
insert_data($c2): согап t($c2);
select_data($cl).
delete_data($cl): select_data($cl):
select_data($c2). commit($cl):
select_data(Scl): select_data($c2).
drop_table($cl): ?>

См. также: 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
Sconn = OCILogonC'scott". "tiger"),
Istmt = OCIParse($conn."select empno.
ename from emp"): /* the define
MUST be done BEFORE odexecute! */
OCIDefineByNametSstmt."EMPNO",Sempno);
OCIDefineByNametSstmt."ENAME".Sename):
OCIExecute($stmt):
while (OCIFetch(Sstmt))
echo "empno:".$empno.". ename:".Sename."\n";
OCIFreeStatement($stmt):
OCILogoff(Sconn): ?>

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
$sth - OCIParse ( $dbh. "begin
sp_newaddress( -addressjd.
'Sfirstname'.
'Slastname'. 'Scompany'. '$addressl'.
'$address2'. 'Scity'. 'Sstate'.
'$postalcode'. 'Scouniry'. :error_code );
end;" ).
// Вызвать хранимую процедуру
spjiewaddress.
с параметрами :address_id //
(.входной-выходной параметр) и
:error_code being <выходной).
OCIBindByName ( $$th. " :address_id".
Saddrjd. 10 ): OCIBindByName
( $sth. " :error__code". Serrorcode. 10 );
OCIExecute ( $sth ): ?>
/y**********Jc*********************x*********
<?php Sconn - OCILogonC'scott"."tiger"),
Sstmt = OCIParse($conn."insert into enp
(empno. ename) ".
"values (:empno,:ename!
1 returning ROWID into :nd"):
Sdata = arraydlll =>
"Lar-y" 2222 => "Bill". 3333 => "Jim"),
Srowid = OCINewDescnptor
($conn.OCI_D_ROWID);
ОС IBindByName(Istmt.":empno"
.&$empno.32). OCIBipdByName
($stmt."-ename".&$ename.32),
OCIBindByNametS
stmt.":rid".&$rowid.-1.0CI_B_ROWID):
Supdate = OCIParse($conn.
"update emp set sal = :sal where
ROWID = :nd"): OCIBmdByNaTO
($Update.":nd".&$rowid.-1.0CI_6_ROWID).
OCIBindBy
Namecsupdate.":sal",&$sal.32)
$sal - 10000.
while nist($enpno..$enarae)
= each($data)) { OCIExecute
($stmt). OCIExecute($Update);
$rowid->free(> OCIFreeStatement
($update): OC!FrepStatement($stmt).
$stmt = OCIParSe($conn."select *
from emp
where empno in
(1111.2222,3333)"):
OCIExecute($stmt);
while (OCIFetchInto
($stmt.&$arr.OCI_ASSOC))*
var_dump($grr).
OCIFreeStatement($stmt).
Sstmt - OCIParse($conn.
"delete from emp
where empno in (1111.2222.3333)");
OCIExecute($stmt).
OCIFreeStatement($stmt):
OCIlogoff($conn) ?>

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
data use (after fetch)
Sresult = OCIResult($stmt, $n):
if ds_object (Sresult))
Sresult = Sresult->load():
II For INSERT or UPDATE
statement use
$sql = "insert into table (fieldl. field2)
values (fieldl = 'value'.
field? = empty_clob()) returning
fie!d2 into :field2"; OC!Parse
($conn. $sql): Sclob =
OCINewDescriptor($conn. OCIJM-OB).
OCIBindByName
($stmt. ":field2". &$clob. -1,
OCI_B_CL03). OCIExecute
($stmt. OCI_DEFAULT):
$clob->save ("some text"). ?>
<?php // Сценарий вызывается
формой HTML, передавая
параметры:
// $user. Spassword,
$ table. $where. и Scommitsize
$conn = OCILogon($user. Spassword);
$stmt = OCIParsetSconn.
"select rowid from Stable $v.here"):
Srowid = OCINewDescnptor
(sconn.OCI_D_ROWID);
OCIOefineB>Name($stmt.
"ROUID",&$rowid); ОС I
Execute(Sstmt). while
( OClFetch(Sstmt) ) {
$nrows = OCIRowCount(Sstmt);
Sdelete = OCIParsetSconn."delete
from Stable where ROWID - rid").
OCIBindByName
(Sdelete."-nd" &$rowid.-1.0CI_B_ROWID);
OCIExecute($deletei. print "$nrows\n",
if ( ($nrows % Scommitsize) == 0 )
{ OCIComirnt($conn). } }
Snrows = OCIRowCountC$stmt):
print "Snrows удалено . \n":
OCIFreeStatement(Sstmt); OClLogoff($conn): ?>
<?php /* Сценарий загружает файл в поле LOB */
if(Msset($lobjjpload) || $lob_upload ^= 'none'){ ?>
<form action="upload bhp" method="post"
enctype="multipart/form-data">
Upload file- <input type="file" name=
"lob_upload"><br> <input type="submit"
value="Upload"> - <inpwt type="reset">
</form> <?php } else {
// $lob_upload contains the temporary
filename of the uploaded file $conn =
OCILogon($user. Spassword); , Slob =
OCINewDescnptor($conn. OCI_D_Li)B).
Sstmt OCIParseCSconn."insert into
Stable (id. the_blob) values
(my_seq.NEXTVAL. HMPTY_BLOB(> )
returnina thp_hlob into the_blob"),
OCIBindByNarnpCSstmt. ':tne_blob',
&Slob. -1. OCIJJLOB); OCIExecuteCSsiirtt;;
1f($lob->savefi1e($lob_up1oad))
{ ОС 'ommit(Sconn);
echo "Blob successfully uploaded\n"; }else{
echo "Couldn't upload Blob\n"; }
OCIFreeDesc(Slob); OCIFreeStatement
(Sstmt): OClLogoff($conn): } ?>

OCIRowCount

Приобретение числа измененных записей int OCIRowCount (int statement)

Возвращается число записей, измененных запросом (скажем, UPDATE). Функция не возвращает число возвращенных запросом записей!

<?php $conn = OCILogonC'scott"."tiger"):
Sstmt = OCIParsetSconn,"create table
emp2 as select * from emp");
OCIExecute($stmt).
print OCIRowCount(Sstmt) .
" записей добавлено.<BR>":
OCIFreeStatement($stmt).
$stmt = OCIParse($conn."delete from emp2").
ОС I Execute(Sstmt),
print OCIRowCount(Sstmt) " записей удалено <BR>".
OCICommit(Sconn). OCIFreeStatementOstmt);
Sstmt = OCIParsetSconn."drop table emp2").
OCIExecute(Sstmt). OCIFreeStatement($stmt):
OCILogOff($conn). ?>

OCINumCols

Приобретение числа полей в запросе

int OCINumCols (int stmt)

<?php Sconn = OCILogonC'scott". "tiger");
Sstmt = OCIParse($conn."select * from emp"):
OCIExecutetSstmt): while ( OCIFetch($stmt) )
{ Sncols = OCINumColstSstmt); for
( $1 = 1; $i <= Sncols; $i++ ) {
Jcolumnjiame = OCIColumnName(Sstmt.$1):
Scolumn_value = OCIResultCSstmt.SD;
print $column_name .':', Scolumn_value . "\n"; )
print "\n"; } OCIFreeStatemenUSstrnt):
OCILogoff(Sconn): ?>

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):

  • OCI_ASSOC — возвращать ассоциативный массив;
  • OCI_NUM — возвращать нумерованный массив (по умолчанию);
  • OCI_RETURN_NULLS — возвращать пустые поля;
  • OCI_RETURN_LOBS — возвращать содержимое полей LOB взамен их дескриптора.

OCIFetchStatement

Занесение итога запроса в массив

int OCIFetchStatement (int stmt, array Svariable)

Возвращает число записей, внесенных в массив variable.

<?php Sconn = OCILogonC'scott"."tiger"):
$stmt = OCIParse($conn,"select * from emp");
OCIExecute($stmt).
Snrows = OCIFetchStatement($stmt,$results);
if ( Snrows > 0 ) {
print "<TABLE BORDER=\"l\"><TR>\n";
while ( list($key. $val) = each($results) )
print "<TH>$key</TH>\n":
print "</TR>\n";
for ( $1 = 0. $1 < Snrows; $i++ )
{ print "<TR>\n"; reset($results);
while ( $column = each($results) )
{ $data = $columr>['value'] [$i];
print "<TD>$data</TD>\n"; }
print "</TR>\n":
print "</TABLE>\n": }
print "Получено Snrows записей <BR>\n";
OCIFreeStatement($stmt);
OCILogoff($conn): ?>

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").
Snmt = OCIParse($conn."select * from emp");
ОС I Execute(Sstmt):
print "<TABLE BORDER=\"l\">
<TR><TH>Name</TH><TH>Type</TH>".
"<TH>Length</TH></TR>":
Srcols = OCINumCols($stmt): for
( $1 = 1. $1 <= $ncols>: $i++ ) { .
$column_name = OCIColumnNarae($stmt,$i);
$column_type = OCIColuranTypef$stmt.$i):
$column_size = OCIColumnSize($stmt.$i).
print "<TR><TD>$column_name</TD>
<TD>$column_type</TD>":
pn nt "<TD>$column_size</TD></TR>"; }
OCIFreeStatement($stmt):
OCILogofftSconn). ?>

См. также: 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)

Возвращает одно из следующих значений:

  1. «SELECT»;
  2. «UPDATE»;
  3. «DELETE»;
  4. «INSERT»;
  5. «CREATE»;
  6. «DROP»;
  7. «ALTER»;
  8. «BEGIN»;
  9. «DECLARE»;
  10. «UNKNOWN».

<?php
$conn = OCILogonC'scott"."tiger"):
$sql = "delete from emp where deptno = 10":
$stmt = OCIParse{$conn.$sql).
if ( OCIStatementType($stmt) == "DELETE" ) {
die "Вам не разрешено удалять записи этой таблицы"; }
OCII.ogoff($conn): ?>

OCINewCursor

Приобретение нового курсора (дескриптора запроса)

int OCINewCursor (int conn)

Применяется для связывания ссылочных курсоров.

<?php // хранимая процедура info.output возвращает ref cursor в :data
Sconn = OCILogonC'scott". "tiger").
Scurs = OCINewCursor(Sconn);
Sstmt - OC!Parse($conn,"begin info.output(:data); end;");
ocibindbyname($stmt."data".&$curs.-1.0CI_B_CURSOR);
ociexecute(lstmt): ociexecute(Scurs);
while (OCIFetchInto($curs.&$data)) { var_dump($data); }
OCIFreeCursor(Sstmt); OClFreeStatement($curs);
OCILogoff($conn); ?>
<?prp // Example 2. REF CURSOR в запросе select
Sconn = OCILogonC'scott"."tiger").
$count_cursor = "CURSOR(select count(empno) num_emps from emp "
"where emp.deptno = dept.deptno)
as EMPCNT from dept"; Sstmt = OCIParse
(Sconn."select deptno.dname.Scount_cursor").
ociexecutetSstmt);
print "<TABLE BORDER=\"1\">
<TR><TH>DEPT NAHE</TH>";
print "<TH>DEPT #</TH><TH># EMPLOYEES</TH></TR>";
while (OC!FetchInto(Sstmt,&$data.OCI_ASSOO)
{ print "<TR>". Sdname = $data["DNAME"].
Sdcptno = Sdata["DEPTNO"]; print "
<TD>Sdname</TD><TD>Sdeptno</TD>",
ooexecute($data[ "EMPCNT" ]);
while (OCIFetchIntoCSdata[ "EMPCNT" ]
.&$subdata.OCI_ASSOO)
{ $num_emps = Ssubdata["NUM_EMPS"];
print "<TD>$num_emps</TD>"; } print "</TR>";
print "</TABLE>"; OClFreeStatement(Sstmt);
OCILogoff(Sconn):

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

Данная группа функций разрешает трудиться с данными БД dBase (dbf).

Индексы и memo-поля не поддерживаются. Блокировка также немыслима, следственно, если два процесса web-сервера единовременно модифицируют один файл dBase, это может привести к его порче.

В различие от SQL БД конструкция «БД» dBase не поддается модификации. dBase-файл представляет собой примитивную последовательность записей фиксированной длины; добавляемые записи дописываются в конец файла, а удаленные сохраняются до вызова функции dbase_ pack().

Рекомендуется применение современных БД, скажем MySQL либо Postgres. Следственно помощь dBase в РНР предуготовлена экстраординарно для экспорта и импорта (для упрощения обмена с другими приложениями).

dbase_create

Создание БД dBase

int dbase_create (string filename, array fields)

Довод fields — это массив массивов, где весь из массивов описывает одно поле БД (таблицы). Всякое поле состоит из имени, символа, обозначающего тип, и (при необходимости) размера поля и его точности.

Допустимые типы полей:

  • L — двоичное, не имеет точности либо размера;
  • М — Memo. Не поддерживается РНР, не имеет точности либо размера;
  • D — дата, сохраняется как ГГГГММДД, не имеет точности либо размера;
  • N — число, имеет длину и точность (число знаков позже запятой);
  • С — строка.

Если файл БД был благополучно сделан, возвращается его дескриптор; в отвратном случае возвращается FALSE.

Sdbname = "/trap/test.dbf": // "database" name ;
' $def = // database "definition" \ array( v
array("date". "D"). arrayC'name". "C". 50).
arrayC'age". "N". 3. 0). array("email","C". 128).
array("ismember". "L") );
if (!dbase_create($dbname, $def)) print "Error!";

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);
$nf = dbase_numfields($db): for ($1=0; $1 < $nf; $i++)
{ print $rec[$i]."<br>\n". } /*

DBM

Эта ipynna функций разрешает манипулировать записями в dbm-БД. ^ Данный тип БД поддерживается системными библиотеками Berkeley DB, GDBM наравне со встроенной помощью «плоских файлов». Данные в них сохраняются в виде пар «имя/значение».

$dbm = dbmopen ("lastseen". "w");
if (dbmexists ($dbm. $usend)) {
$last_seen = dbmfetch ($dbm. Susend); } else {
dbminsert (Sdbm. Susend. time()); }
do_stuff():
dbmreplace ($dbm. Susend. time()):
dbmclose ($dbm);

dbmopen

Открытие БД DBM

int dbmopen (string filename, string flags)

1-й довод содержит полное имя DBM-файла БД, а 2-й — режим открытия: «г», «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) {
echo "$key = " . dbmfetch (Sdbmjd. $key) . "\n":
$key = dbmnextkey (Sdbmjd. $key)

dblist

Приобретение изложения применяемой библиотеки DBM I

string dblist (void)

Абстракция яруса dbm

Эти функции предуготовлены для работы с разновидностями Berkeley DB. Реально помощь ограничена современными подобиями Slcepycat Software DB2 (не путайте с IBM DB2, использующей интерфейс ODBC).

Действие некоторых функций различается в зависимости от реализации БД. Скажем, функции dba_optimize() и dba_sync() действуют согласно изложению, но могут быть идеально непотребны для некоторых видов БД.

Дабы добавить поддержку ниже перечисленных БД в РНР, используйте указанные параметры —with сценария конфигурирования configure.

  • Dbm — исходная версия Berkeley DB. Постарайтесь ее не применять из-за задач совместимости (- -with-dbm).
  • Ndbm — новейший и больше комфортный тип, нежели dbm. Но имеет многие недочеты dbm (--with-ndbm).
  • Gdbra — GNU database manager (ftp://ftp.gnu.org/pub/gnu/gdbm/) (--with-gdbm).
  • DB2 — Sleepycat Software's DB2 (http://www.steepycat.com/). Описывается как «высокоскоростная, подходящая как для клиентских, так и для заказчик-серверных приложений». Использует бинарные деревья взамен хеш-таблиц (--with-db2).
  • DB3 — Sleepycat Software's DB3 (- -with-db3).
  • Cdb — «стремительная, облегченная, для хранения констант»; предоставляет доступ только для чтения (- -with-cdb).

php $id = dba_open ("/Imp/test.db", "n". "db2').
if (!$id) { echo "dba_open failed\n": exit: }
1 dba_replace ("key". "This TS an example!", Sid):
/ if (dba_exists ("key", $id)) {
echo dba_fetch ("key", $nd): dba_delete ("key", $id): }
dba_sync($id): dba_close($id): ?>

DBA разрешает трудиться с двоичными данными и ограничена только возможностями БД. БД, использующие файлы, обязаны предоставлять возможность указания режима открытия файла БД (либо его создания), и традиционно это указывается в доводе функций dba_open() и dba_popen().

Получить ступенчато все содержащиеся в БД элементы дозволено, применяя функции dba_firstkey() и dba_nextkey(). He изменяйте БД во время просмотра.

<?php i .. .open database .
$key - dba_firstkey (Sid):
while ($key ' = FALSE) {
If (.,.){ # запомнить имя для последующей
операции $handle_later[] = $'<еу: }
$key = dba nextkey (Sid): }
for ($1 = 0: $1 < count($handle_iater);
$i++) dbajJelete ($handle_later[$i]. $id): ?>

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

Функции дозволяют читать данные БД 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

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!"),
// select from a system tdble $res = ovnmos_exec (Iconn.
"select table_id. tablejtame from sys.tables"),
if ($res != 0) { echo "Statement ok!": ovrimos result_all ($res).
ovnmos_free_result ($res): } ovrimos close(Sconn). } ?>

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
("dbjiost". "8001". "admin", "password");
if ($conn'=0) { echo "Connection ok!";
$res=ovrimos_prepare ($conn.
"select tablejd. table_name from sys.tables
where table_id=l"); if ($res ' = 0) {
echo "Prepare ok!"; if (ovnmos_execute ($res))
{ echo "Execute ok!\n". ovnmos_result_all ($res);
) else { echo "Execute not ok!"; }
ovnmos_free_result ($res): } else {
echo "Prepare not ok!\n": } ovnmos_close (Sconn);} ?>

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
("dbjiost". "8001". "admin", "password").
if ($conn i= 0) { echo "Connection ok!":
Sres - ovrimos_exec (Sconn. "update test set i=5"):
if ($res != 0) { echo "Statement ok!":
echo ovrimos_num_rows ($res).
" Записей изменено \п": ovnmos_free_result (Sres): }
ovrimos_close (Sconn): } ?>

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
("neptune", "8001". "admin", "password");
if ($conn!=0) { echo "Connection ok":
$res=ovrimos_exec (Sconn."select t_id. t_name from tbl"):
if ($res != 0) {
echo "Statement ok!"; if (ovrimos_fetch_into
($res. &Srow)) { list ($table_id. $table_name)
= $row. echo "t_id=".$table_id.". tjiame=",
$table_name."\n"; if
(ovnmos_fetch_into ($res. &$row))
{ / list ($table_id, $table_name) = $row:
echo "t_id=".$table_id.". t_name=",$table_name."\n"; j
} else { \. echo "Next; error\n"; } else {
echo "First; error\n"; } ovnmos_free result ($res); }
ovnmos_close ($conn); ?>

ovrimos_fetch_row

Приобретение записи

int ovrimos_fetch_row (int result_id [, int how [, int rowjiumber]])

Выбирает запись из возвращенных запросом для того, дабы ее данные дозволено было получить функцией ovrimos_resu"lt(). Возвращает TRUE либо FALSE — при ошибке.

<?рhр Sconn = ovrimos_connect
("remote.host". "8001". "admin", "password");
if (Sconn !- 0) { echo "Connection ok!";
$res=ovrimos_exec ($conn, "select t_id. t_name from tbl"):
if ($res != 0) { echo "Statement ok!":
if (ovnmos_fetch_row ($res. "First")) { $table_id = ovrimos_result ($res. 1): $table_name = ovrimos_resu1t ($res. 2): echo "t_id=" $table_id.".
t_name=".$table_name."\n"; if
(ovrimos_fetch_row ($res. "Next")) {
$table_id = ovnmos_result ($res. "t_id"):
$t_name = ovrimos_result ($res. "t_name");
echo "t_id=" Stable_id ". t_name=" Stjname "\n";
} else { echo "Next errorXn": } } else {
echo "First- error\n". }
ovnmos_free_result ($res); } ovnmos_close
(Sconn);

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
("db_host". "8001". "admin", "password");
if (Sconn != 0) { echo "Connection ok!";
$res = ovrimos_prepare
(Sconn. "SELECT tablejid. table_name
FROM sys.tables WHERE tablejd = 7");
if (Sres != 0) { echo "Prepare ok!";
if (ovnmos_execute (ires. array(3))J {
ovrimos_result_all (Sres); } else {
erho "Fxecute not ok!": }
ovnmos_free_result (Srts); } else {
echo "Prepare not ok!\n". } ovnmos_close
(Sconn): } ?>

Дальше приводится расширенная версия приведенного выше сценария, выводящая метаинформацию.

Example 2. Ovnmos_result_all with meta-information
<?php Sconn - ovrimos_connect
("db_host". "8001". "admin", "password"):
if (Sconn '= 0) { echo "Connection ok.1".
$reb ^ ovnmos_exec (Sconn.
"select table_id. tablejiame from
sys.tables where tabloid = 1") if (Sres != 0) { ,
echo "Statement ok! cu>-sor="
ovrimos_cursor (Sres) "\p"; f
Scolnb = ovnmos_num_fields (Sres):
echo "Полей = " .Scolnb."\n". [
for ($1=1: Si<=$colnb: $i++) {
Sname = ovrimos_field_name (Sres. Si);
Stype = ovnmos_field_type (Sres. Si).
Slen = ovrimos_field_len (Sres. Si):
echo "Поле Si Имя: Sname
Тип: Stype разиер=" $!РП."\П"; }
ovnmos_result_all (Sres).
ovrimos_free_result (Sres): } ovrimos_close (Sconn). } ?>

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)