Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
DarkSet
1

Проблема с коннектом к ORACLE в PHP ocilogon (параметры функции)

12.01.2007, 15:46. Показов 5957. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Поднимаю тему, у меня тоже проблема с подключением к ораклу из ПХП.
Нашел описание функции http://php.mirror.camelnetwork.com/manual/ru/function.oci-connect.php http://php.mirror.camelnetwork.com/manual/ru/function.oci-connect.php
из которого мне не понятно каким должна быть строка третьего параметра.
oci_connect -- Устанавливает соединение с сервером Oracle</P><DIV class=refsect1><A name=AEN120607><H2>Описание</H2>resource <B class=methodname>oci_connect</B> ( string username, string password [, string db [, string charset]] )


<B class=function>oci_connect()</B> возвращает идентификатор соединения, который используется большинством функций данного модуля. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя одной из записей в файле <TT class=filename>tnsnames.ora</TT>. Если третий параметр не указан, PHP использует переменные окружения <VAR class=literal>ORACLE_SID</VAR> и <VAR class=literal>TWO_TASK</VAR>, которые используются для определения имени локального экземпляра Oracle и местонахождения файла <TT class=filename>tnsnames.ora</TT> соответственно.
вот этот db чтобы указать в нем запись из tnsnames.ora как ее прописать? Я прописываю имя записи как указана она на сервере - не работает.
мой код ПХП:
$loginn="login";
$passwrd="1";
$dbname="usertest.world";
$db = ociplogon($loginn, $passwrd, $dbname);
if (!$db)
{
Echo("<p><b>Ошибка подключения к базе данных. Попробуйте повторить попытку позже.</b></p>");
}
else
{
...
}
результат выполнения:
<STRONG>Warning</STRONG>: ociplogon() [http://10.10.0.13/moskotin/Tarifs/function.ociplogon function.ociplogon]: _oci_open_server: Error while trying to retrieve text for error ORA-12154 in <B>/usr/local/www/data/moskotin/Tarifs/dbfill.php</B> on line <B>16</B>
<B>Ошибка подключения к базе данных. Попробуйте повторить попытку позже.</B>
Через пинговалку оракла такая запись ТНСа нормально распознается и все возвращает как надо, то есть делоа не в записи на сервере и не в коннекте на нем, а именно в обращении из ПХП.
Что делать?
Проблема нашлась, была она в том что переменная окружения не была на сервере одна установлена, полечилось с помощью:
putenv("ORACLE_HOME=/opt/oracle/oraHome");
Но мануалки по работе с Ораклом из ПХП дурные!</P></DIV>
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2007, 15:46
Ответы с готовыми решениями:

проблема с коннектом по SSH
Всем привет. Имеется: 1) интернет с белым айпишником 2) роутер d-link 620 3) компьютер с ubuntu,...

Проблема при переходе с Oracle 8.1.7 на Oracle 9.2.0.1
После полного импорта данных из 8-ки в 9-ку утилитой imp, перестали работать запросы, которые до...

Параметры-значения и параметры-переменные в функции и процедуре
Плиз помогите в этом коде поставить параметры или атрибуты, не уверен в правильном названии, для...

Где на клиенте указать параметры соединения к Oracle серверу?
Где на клиентской машине указываются параметры соединения к Oracle серверу?

2
0 / 0 / 0
Регистрация: 12.02.2007
Сообщений: 6
12.02.2007, 19:00 2
DarkSet (12.01.2007)
Поднимаю тему, у меня тоже проблема с подключением к ораклу из ПХП.



Нашел описание функции http://php.mirror.camelnetwork.com/manual/ru/function.oci-connect.php http://php.mirror.camelnetwork.com/manual/ru/function.oci-connect.php



из которого мне не понятно каким должна быть строка третьего параметра.



oci_connect--Устанавливает соединение с сервером Oracle<DIV class=refsect1><A name=AEN120607><H2>Описание</H2>resource <B class=methodname>oci_connect</B> ( string username, string password [, string db [, string charset]] )







<B class=function>oci_connect()</B> возвращает идентификатор соединения, который используется большинством функций данного модуля. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя одной из записей в файле <TT class=filename>tnsnames.ora</TT>. Если третий параметр не указан, PHP использует переменные окружения <VAR class=literal>ORACLE_SID</VAR> и <VAR class=literal>TWO_TASK</VAR>, которые используются для определения имени локального экземпляра Oracle и местонахождения файла <TT class=filename>tnsnames.ora</TT> соответственно.



вот этот db чтобы указать в нем запись из tnsnames.ora как ее прописать? Я прописываю имя записи как указана она на сервере - не работает.



мой код ПХП:

$loginn="login";

$passwrd="1";

$dbname="usertest.world";

$db = ociplogon($loginn, $passwrd, $dbname);

if (!$db)

{

Echo("<p><b>Ошибка подключения к базе данных. Попробуйте повторить попытку позже.</b></p>");

}

else

{

...

}



результат выполнения:



<STRONG>Warning</STRONG>: ociplogon() [http://10.10.0.13/moskotin/Tarifs/function.ociplogon function.ociplogon]: _oci_open_server: Error while trying to retrieve text for error ORA-12154 in <B>/usr/local/www/data/moskotin/Tarifs/dbfill.php</B> on line <B>16</B>

<B>Ошибка подключения к базе данных. Попробуйте повторить попытку позже.</B>



Через пинговалку оракла такая запись ТНСа нормально распознается и все возвращает как надо, то есть делоа не в записи на сервере и не в коннекте на нем, а именно в обращении из ПХП.



Что делать?



Проблема нашлась, была она в том что переменная окружения не была на сервере одна установлена, полечилось с помощью:

putenv("ORACLE_HOME=/opt/oracle/oraHome");



Но мануалки по работе с Ораклом из ПХП дурные!</DIV>
Дело в том, что OCI подразумевает, что:

1. Сервер Оракла стоит в одной ОС с ВЕБ-сервером.

2. Есть клиент Оракла, который знает физический адрес сервера.



Копать в сторону:

1. Настройки OCI для работы с удаленным сервером

2. Если нет возможности установить клиента, но известны параметры подключения к серверу - см. п.1
0
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 17
31.08.2011, 02:06 3
Проблема вот в чем:

Есть LINUX, там стоит клиент Oracle 10g...

Мне нужно подконнектиться к нему через ocilogon, но админ категорически отказывается прописывать где-либо имя листенера.. а без него он коннектиться не хочет.

Вопрос:
можно ли каким-нибудь образом обойти енто, указав что-нибудь в ocilogon?

Я знаю, что в нем можно указать порт, имя сервиса и все такое.

Спасибо за помощь
0
31.08.2011, 02:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2011, 02:06
Помогаю со студенческими работами здесь

Параметры функции: параметры по умолчанию
помогите пожалуйста понять. void foo(int a, int b, int c=1){std::cout &lt;&lt; a &lt;&lt; &quot;\t&quot; &lt;&lt; b &lt;&lt;...

Проблема с Oracle
У меня проблема. Помогите. Viual Basic не подключается к Oracle. Рекордсет зависает во время...

Параметры WndProc проблема
У меня такая проблема. Читаю книгу Ганеев &quot;Проектирование интерфейса пользователя средствами Win32...

Проблема подключения к бд Oracle!
Парни ахинея какая то! Делал форму с компонентами Oracle все норм было... щас кидаю на форму...

Oracle+VB=проблема со шрифтами
Здравствуйте. БД на Oracle, приложение на VB. Кирилица замещается знаками '?'. Как беду победить?...

Проблема с SELECT-ом в Oracle 9.1i
SELECT , который работал в старой версии DB, перестал работать и выдает ошибку : ORA-31011 XML...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru