Oracle
Взаимодействие с базами данных
🕛 01.11.2006, 14:00
Примерный образец работы с БД: <?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)
Функция является комбинацией трех функций: 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».