Взаимодействие БД Oracle и страниц PHP
PHP – простое в употреблении, легкое и бесплатное средство для динамического построения страниц HTML на сервере, перед передачей клиенту в браузер.
PHP умеет обращаться в
СУБД Oracle, и это делает его хорошим
кандидатом для разработки приложений web на основе
Oracle малой и средней сложности.
Дальнейшие примеры будут приведены для связки Windows + Apache. Удобнее всего использовать версию Apache со штатного установочного комплекта
СУБД Oracle (в версии Oracle 10.1 – на Companion CD).
Правка файла конфигурации PHP
Найдите файл php.ini. Скорее всего он в каталоге c:WINNT. Найдите параметр extension_dir и проставьте extension_dir = "C:phpphp-4.3.6-Win32sapi"
Снимите комментарии со строк ;extension=php_oci8.dll
;extension=php_oracle.dll
;extension=php_dbase.dll
Последний параметр требуется раскомментарить только если вы намерены
проиграть следующий далее пример с записью данных в формате dbf. Правка файла конфигурации Apache
Найдите файл httpd.conf. Скорее всего он в каталоге %ORACLE_HOME%
ApacheApacheconf. Добавьте строки:
LoadModule php4_module C:/php/php-4.3.6-Win32/sapi/php4apache.dll AddModule mod_php4. c AddType application/x-httpd-php .php Последний параметр уже присутствует в виде комментария, и для него достаточно просто знак комментария снять. Копирование файлов динамических модулей В соответствии с указанным в php.ini значением параметра extension_dir скопируем файлы: c:
cd phpphp-4.3.0-Win32
move php4ts.dll sapi
move extensionsphp_oci8.dll sapi
move extensionsphp_oracle.dll sapi
Обращение с помощью PHP к данным в Oracle может осуществляться
- через CGI. Данная возможность рискована с точки зрения безопасности и здесь не рассматривается.
- через специальные функции.
Эта фозможность, в свою очередь, реализуется двумя имеющимися библиотеками: php_oracle и php_oci8, из которых вторая считается более эффективной. Продемонстрировать ту и другую можно на примере файла employees.php: Access to Oracle from php
The two types of Access to Oracle from php:
Пример вставки записи в БД.
Данные передаются через строку запроса HTTP. Это позволяет организовать в приложении содержательный диалог, подключив средства ввода форм HTML.
Подготовим файл insert.php:
Access to Oracle from php>
INSERT example:
Done.
Поместим файл в htdocs и обратимся по адресу
http://localhost:7778/insert.php?empname=Вася&empno=1111. В SQL*Plus или предыдущей страницей PHP можно проверить результат. Обратите внимание на то, что в приведенном примере никак не обрабатывается (а) блокировка строк, возможно мешающая вставке и (б) возможный конфликт первичного ключа.
Перенос из формата dbf в БД Oracle
Как говорилось выше, PHP имеет функции обращения к данным отнюдь не только в Oracle. Наличие этих функций дает возможным использования этого инструмента достаточно экзотично, например для переноса данных между Oracle и другими системами. Например, нередко стоит задача переноса из формата dbf в БД под управлением Oracle или наоборот. Вот как ее можно решить «на коленке». Обратите внимание, что перенос инициируется из окошка браузера, а выполняется целиком на узле web.
Составим файл dbase.php:
Access from php to different data bases
Distant data transfer from Oracle to dbf:
Done.
Поместим файл в htdocs и обратимся по адресу
http://localhost:7778/dbase.php. В каталоге с: должен появиться файл fromoracle.dbf с данными, полученными из
Oracle.
Источник