В этой статье я разберу как делать подключение к базе данных Oracle с помощью PHP.
Моя ситуация
Обрисую ситуацию, с которой я столкнулся. Имеется два сервера, на одном – база Oracle, на другом – сам сайт.
Первым делом я проверил, а установлен на второй машине (где сайт) Oracle Client. В моем случае уже все было установлено и работало. Поэтому я спокойно вздохнул и перешел к следующему шагу – проверка подключения клиента к нужно мне базе на другой машине. Тут так же все было в порядке и подключалось.
Следующий шаг оказался самым интересным и сложным. Как сделать подключение через php?
Шаги к моему подключению к базе данных Oracle
Свой файл я назвал config.php
Первым делом советую добавить строчки:
|
<?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> |
Это поможет вам увидеть ошибки, которые могут возникнуть, а не голую белую страницу.
Следующим я добавил вот эти две строчки:
|
<meta charset="utf-8"> <meta charset="windows-1251"> |
Так мы сразу указываем кодировку документа для Linux и Windows систем.
Дальше нам понадобятся данные из файла tnsnames.ora. Он должен находится в папке вашего Oracle.
Файл tnsnames.ora
Ищем следующие строчки:
|
BDORA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BDORA) ) ) |
Немного разберем эти строчки. Во-первых у вас будут отличия в имени сервера, хоста и базы данных. В моем случае база данных – BDORA, хост – 192.168.xxx.xxx (не забываем, что вместо xxx у нас с вами стоят цифры), а имя сервера – BDORA. Сразу обращу внимание, что хост может выглядеть и так: ora.aaaa.local. Тут нечему удивляться. Такое случается все чаще и чаще.
Имя и пароль пользователя базы данных Oracle
Нам осталось узнать и записать имя и пароль пользователя, подключающийся к Oracle.
|
// Имя пользователя базы данных Oracle $dbusername = "userora"; // Пароль пользователя базы данных Oracle $dbpass = "passuserora"; |
Oci_connect
Теперь посмотрим на команду подключения oci_connect.
oci_connect — Устанавливает соединение с базой данных Oracle.
|
resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) |
Связи с этим мы приходим вот к этому коду:
|
/* *** Сценарий установки соединения с базой данных Oracle *** * * *** Формула написания oci_connect *** * resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) * В нашем случае: * oci_connect ( $имя_пользователя, $пароль_пользователя, $данные_базы_данных) */ // Подключение к базе данных Oracle $dbconnect = oci_connect ($dbusername, $dbpass, $dbhost); |
Нам уже известны $dbusername и $dbpass. Осталось разобраться с $dbhost.
|
// Данные базы данных Oracle для подключения к ней $dbhost = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=BDORA)))"; |
Что-то напоминает, не так ли? Не буду долго тянуть и скажу, он идентичен данным из tnsnames.ora.
Проверка подключения
|
// Проверка подключения к базе данных Oracle if($dbconnect) echo 'Соединение установлено.'; else die ('Ошибка подключения к серверу баз данных.'); |
Если вы все правильно выполнили, то в браузере вы увидите слова: “Соединение установлено.”
В конце я приведу полностью весь файл config.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
<?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> <meta charset="utf-8"> <meta charset="windows-1251"> <?php /* *** config.php *** * * Подключение к базе данных Oracle * Проверка подключения к базе данных Oracle */ /* *** Данные подключения из Oracle SQL Developer *** * * Connection Name: BDORA * Username: userora * Password: passuserora * Hostname: 192.168.xxx.xxx * Port: 1521 * Service name: BDORA * Connection Details: userora//192.168.xxx.xxx:1521/BDORA */ /* *** Данные из файла tnsnames.ora *** * * BDORA = * (DESCRIPTION = * (ADDRESS_LIST = * (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)) * ) * (CONNECT_DATA = * (SERVER = DEDICATED) * (SERVICE_NAME = BDORA) * ) * ) */ // Данные базы данных Oracle для подключения к ней $dbhost = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=BDORA)))"; // Имя пользователя базы данных Oracle $dbusername = "userora"; // Пароль пользователя базы данных Oracle $dbpass = "passuserora"; /* *** Сценарий установки соединения с базой данных Oracle *** * * *** Формула написания oci_connect *** * resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) * В нашем случае: * oci_connect ( $имя_пользователя, $пароль_пользователя, $данные_базы_данных) */ // Подключение к базе данных Oracle $dbconnect = oci_connect ($dbusername, $dbpass, $dbhost); /* *** Проверка подключения к базе данных Oracle *** * * Если вы хотите проверить подключение к базе данных Oracle, то раскомментируйте (убрать знак // ) следующие строки (всего 4 строчки): * * if($dbconnect) * echo 'Соединение установлено.'; * else * die ('Ошибка подключения к серверу баз данных.'); * * Если соединение было проведено успешно, то в своем браузере вы увидите: "Соединение установлено." (без кавычек). * Если соединение не было установлено, то в своем браузере вы увидите: "Ошибка подключения к серверу баз данных." (без кавычек). */ // Проверка подключения к базе данных Oracle //if($dbconnect) //echo 'Соединение установлено.'; //else //die ('Ошибка подключения к серверу баз данных.'); ?> |
Надуюсь вам это помогло и вы смогли благополучно подключиться к своей базе данных Oracle.
Похожее

Рассмотрим случай, когда нам нужно отыскать через Менеджер файлов папку с нашими картинками, видео и так далее. То есть папку Медиабиблиотеки. Пути к ней следующие: Через Администрирование на сайте Рабочий стол -> Контент -> Структура сайта -> Файлы и папки -> upload -> medialibrary Получаем путь: /upload/medialibrary Через Менеджер файлов…
26.05.2015
В "1С-Битрикс: Управление сайтом"

Недавно Microsoft начала рассылать уведомления, об изменении цены в большую сторону на "Office 365 для дома". Изменение цен с 25 февраля 2015 Начиная с 25 февраля 2015 года стоимость годовой подписки Office 365 для дома, приобретенной напрямую у Microsoft, изменится с 2499 руб. до 2874 руб. Новая цена будет действительна…
13.02.2015
В "Новости из мира высоких технологий"

17 декабря 2014 выходит новый патч для Assassin’s Creed Единство на PS4 и Xbox ONE. Через несколько дней он станет доступным и на PC. Более подробную информацию вы можете прочитать ниже. Продолжая работу над улучшением игрового опыта, сегодня мы запускаем “Патч 4” для "Assassin’s Creed Единство". Прислушиваясь к мнению фанатов, в…
17.12.2014
В "Новости игрового мира"