Oracle / PHP FAQ
Автор: Автор: Frank Naude Перевод: Александр Войцеховский 2004-01-28 Оригинал статьи доступен по адресу http://www.orafaq.net/faqphp.htm Что такое PHP и что необходимо иметь для работы с Oracle? PHP - рекурсивный акроним "PHP Hypertext Preprocessor". Это интерпретируемый язык программирования с открытым исходным кодом. Он предназначен для генерации веб-документов на сервере. Этот документ описывает, как PHP взаимодействует с базой данных Oracle. Подразумевается, что у Вас уже установлен и настроен PHP. Проверить его работоспособность можно следующим скриптом: If PHP is working, you will see "Hello World" below: Попробуйте выполнить этот код из командной строки либо откройте тестовую страницу в Вашем браузере. Если приведенный выше пример не работает, отложите этот документ и добейтесь корректной работы PHP. В чем разница между модулями OCI и ORA? В дистрибутив PHP входят два модуля, предназначенных для работы с PHP:
Как подключится к базе данных? Если вы используете модуль OCI, воспользуйтесь следующим кодом:
Если вы используете модуль ORA, попробуйте следующее:
Замечание: если у Вас не установлены необходимые переменные окружения, поместите следующие строки в начале каждого скрипта, работающего с Oracle:
В случае, если Вы несколько раз в пределах одного скрипта попробуете подключится к базе данных, используя одинаковую комбинацию логин/пароль, Вы получите одно и то же соединение. Если Вам необходимы различные подключения к базе, используйте функцию OCINLogon(). Если вам нужны постоянные соединения, используйте функцию OCIPLogon(). Почему возникает ошибка "Call to undefined function: ora_logon()/ ocilogon()"? Вероятнее всего, у Вас не включена поддержка Oracle. Вернитесь к вопросу "Как собрать PHP с поддержкой Oracle?". Вам необходимо пересобрать php, если у Вас Linux или раскомментировать загрузку соответствующей библиотеки, если у вас Windows. Как выполнять запросы SELECT, INSERT, UPDATE и DELETE посредством PHP? Приведенный ниже исходный код демонстрирует, как удалять/создавать новые таблицы, записывать/извлекать из них данные в PHP. // Удаляем старую табоицу // Создаем новую таблицу // Заносим строку в только что созданную таблицу // Заносим данные в таблицу используя конструкцию "bind" // Производим выборку из базы данных // Выполняем commit; // Отключаемся от базы данных Как получить доступ к механизму транзакций из PHP? При использовании модуля OCI каждый раз после удачного выполнения ociexecute() автоматически происходит commit, и, таким образом, транзакция сразу же завершается. Вы можете управлять этим процессом, указывая дополнительный параметр OCI_COMMIT_ON_SUCCESS либо OCI_DEFAULT при вызове функции ociexecute(). В случае использования OCI_DEFAULT вы сможете полностью управлять механизмом транзакций, для этого используйте функции OCICommit() и OCIRollback(). Следует учесть, что использование OCI_DEFAULT в одном из вызовов ociexecute() автоматически наследуется для всего подключения к базе данных и будет использовано при дальнейших операциях с базой данных. Если вы не хотите использовать автоматический и ручной механизм управления транзакциями одновременно, используйте OCINLogon(). В случае, если Вы используете модуль ORA, управление транзакциями выглядит немного иначе. Используйте функции ORA_CommitOn() и ORA_CommitOff() для переключения между ручным и автоматическим механизмом управления транзакциями. Для завершения транзакции и отката используйте функции ORA_Commit() и ORA_Rollback() соответственно. В случае, если после завершения работы скрипта ни разу не выполнялся ни commit, ни rollback, PHP завершит транзакцию командой commit. Как корректно обрабатывать возникающие ошибки? В случае, если вы используете модуль OCI, используйте функцию OCIError() для получения массива, содержащего детальную информацию о возникающих ошибках. Если подключений несколько, OCIError() позволяет получить информацию об ошибке в каждом их них индивидуально. Если данная функция вызывается без параметров, она возвращает массив с информацией о последней произошедшей ошибке. print "\nError code = " . $err [ code ]; В случае, если вы используете модуль ORA, воспользуйтесь функциями ora_error() и errorcode() для получения информации о последней произошедшей ошибке.
Как вызвать из PHP хранимую процедуру? Приведенный ниже пример демонстрирует создание и вызов хранимой процедуры. // Создаем хранимую процедуру // Вызываем процедуру // Отключаемся от базы данных Где можно найти больше информации о работе с Oracle в PHP? Для получения более детальной информации посетите следующие сайты:
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5286 |