У меня установлен Oracle Instant Client на веб-сервере SuSE, и я пытаюсь подключиться к базе данных Oracle с помощью PHP через unixODBC.
Соединение работает нормально, после выдачи odbc_connect я получаю ответ типа «odbc link». После выдачи odbc_prepare я получаю ответ типа «odbc result». Проблема в том, что когда я пытаюсь выполнить команду odbc_execute, я получаю одну из двух ошибок:
Warning: odbc_execute(): SQL error: [unixODBC][Oracle][ODBC][Ora]Driver not capable., SQL state S1C00 in SQLExecute
или же ошибка браузера:
Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.
Я также пробовал указать SQL_CUR_USE_ODBC в методе odbc_connect, но когда я это делаю, скрипт просто зависает на неопределенное время.
Мне интересно, есть ли какие-то параметры, которые я должен указать в файлах odbc.ini или odbcinst.ini для DSN? Кажется, не так много документации о том, какие опции доступны или что они делают.
редактировать
Я получил соединение, работающее с помощью методов объекта PDO (на самом деле ничего не менял, просто пробовал использовать методы подготовки / выполнения PDO). Однако я все еще не могу получить никаких результатов, используя odbc_prepare / odbc_execute. Вот информация о сервере, которую я получаю из запроса «SELECT * FROM product_component_version»:
[PRODUCT] => NLSRTL
[VERSION] => 10.2.0.4.0
[STATUS] => Production
[PRODUCT] => Oracle Database 10g Enterprise Edition
[VERSION] => 10.2.0.4.0
[STATUS] => 64bi
[PRODUCT] => PL/SQL
[VERSION] => 10.2.0.4.0
[STATUS] => Production
[PRODUCT] => TNS for Solaris:
[VERSION] => 10.2.0.4.0
[STATUS] => Production