PHP + ORACLE

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

пытаюсь прицепиться с помощью PHP к удаленной базе Oracle. PHP — стоит на WINXP. В качестве веб-сервера использую ZEND SERVER, сам ORACLE рекомедует его использовать.

Пробую подконектиться следующим образом:


<?php
$dbstr ="
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.* )(PORT = 1521)))
    (CONNECT_DATA = (SID = ****))
  )";

$conn = oci_connect('test','test',$dbstr, 'RUSSIAN_CIS.CL8MSWIN1251');
if($conn==FALSE) {echo "не удалось подключение...";}
else
{
echo "ok!";
}

if (!$conn) {
    $e = oci_error();
var_dump($e);}
	?>

получаю:


Warning: oci_connect () [function.oci-connect]: OCIEnvNlsCreate () failed. There is something wrong with your system — please check that PATH includes the directory with Oracle Instant Client libraries in C: \Program Files\Zend\Apache2\htdocs\test.php on line 26

не удалось подключение...bool (false)

Ну, я собственно понимаю, что за варнинг получаю, что то не прописано в PATH, но, блин, что именно?

я вот посмотрел переменные окружения, сейчас там есть такое:


PATH=C: \oracle\9.2.0; C: \oracle\9.2.0\bin; C: \Program Files\Zend\instantclient

NLS_DATE_FORMAT=DD.MM.RR

TNS_ADMIN=C: \oracle\9.2.0\network\ADMIN

ORACLE_HOME=C: \oracle\9.2.0\bin

SQLPATH=C: \oracle\9.2.0\dbs

NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251

ORACLE_SID=***

вроде все есть, что же оно хочет?

Кто нибудь вообще настраивал связку PHP+ORACLE?

Кстати, SQL Plus успешно подключается к базе, значит вся проблема с PHP.

Прошу помощи.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Наверное \bin тут лишнее
таки да, ну, на 100% точно не знал, что именно нужно прописывать, поэтому подставлял различные вариации.
Сейчас уже все работает.
Что было и как исправил?

Очень сильно грешу на Zend Server, которого я использовал в качестве веб-сервере. Снес его, поставил ручками Apache+php+instant client. — все сразу и заработало.


ORACLE_HOME=C: \oracle\9.2.0\bin
Наверное \bin тут лишнее

Да, и если есть Instant Client — то ORACLE_HOME должен указывать на него

А не могли бы вы мне инстант клиент переслать на почту (в профиле есть). Не охота регистрироваться на сайте оракла.

судя из той же документации:

These functions allow you to access Oracle Database 11g, 10g, 9i and 8i.

судя по ua2.php.net/.../book.oci8.php у меня возникает подозрение, что пых 5 работает максимум с 8-м ораклом, а вы я так понимаю к 9-му прикручиваете

ну, в PATH я прописал путь к instant client, кажись, этого должно быть вполне достаточно, в добавок в PATH еще и прописал пути к oracle client, ну вобщем, все что можно прописал, результат все тот же.

Меня вот уже просто интересует вопрос, реализовывал ли кто нибудь такое?

А либы случайно не в папке lib лежат, он же у вас именно либы и просит? У меня в 8-м оракле по крайней мере есть такая. Попробую ближе к обеду протестировать подключение с помощью PHP.

Підписатись на коментарі