2015-03-10 2 views
0

Здесь очень простая проблема (по крайней мере, после борьбы с ней и упрощения ее почти до абсурда).Ошибка подключения базы данных PHPUnit

Я подключаюсь через драйвер OCI внутри файла под названием whatever.Test.php. Просто сделайте простой запрос и выйдите. Затем я вызываю файл из браузера, и данные, взятые из базы данных, отображаются правильно. Следующий шаг: я запускаю PHPUnit по тому же файлу со следующим результатом:

PHP Warning: oci_connect(): ORA-12154: TNS:could not resolve the connect identifier specified in ... 

Любые идеи?

+0

Вы используете строку подключения в 'oci_connect()'; это ваш набор окружения ('TNS_ADMIN',' ORACLE_SID', 'ORACLE_HOME') и то же, что и среда, когда' whatever.Test.php' открывается через браузер? – VolenD

ответ

0

Окончательное решение было немного очевидным, как только я придумал его. Как-то сервер мог понять, с каким сервером, с которым я пытался связаться, был, по-моему, через файл tnsnames.ora. Однако, поскольку выполнение сценария не вызывает все серверные процессы, эта информация оттуда уже недоступна. Поэтому мне нужно было предоставить все данные в параметре oci_connect() $ connection_string, используя формат [//]host_name[:port][/service_name][:server_type][/instance_name] (check documentation). Раньше я предоставлял только часть host_name.

(Спасибо в любом случае за ваш ответ, пользователь *).

Смежные вопросы