Я пытаюсь настроить простую связь между моим локальным сервером WAMP и некоторыми Oracle 11.1.0.7, которые у меня есть. По-видимому, у PHP есть всевозможные решения и магические ситуации, когда он не запускается.
Я запускаю последнюю 32-битную версию от WAMP (я набрал ее сегодня снова, чтобы проверить). Машина db также 32-битная, а не локальная
вот мои попытки подключиться к базе данных, каждый раз, когда я получал ту же ошибку:
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = some.ip.addr)(PORT = 1521)))(CONNECT_DATA=(SID=somesid)))"; //$link = oci_connect('sqlmap', 'sqlmap', 'some.ip.addr') OR die('oci_connect' . print_r(oci_error())); //$link = oci_connect('sqlmap', 'sqlmap', $db) OR die('oci_connect error' . print_r(oci_error())); //$link = oci_connect('sqlmap','sqlmap', 'some.ip.addr/somesid') or die('<= oci_connect ' . print_r(oci_error())); //$link = oci_connect('sqlmap','sqlmap', '//some.ip.addr/somesid') or die('<= oci_connect ' . print_r(oci_error())); $link = oci_connect('sqlmap','sqlmap', '//some.ip.addr/somesid'); Warning: oci_connect() [function.oci-connect]: ORA-24315: illegal attribute type in Array ( [code] => 24315 [message] => ORA-24315: illegal attribute type [offset] => 0 [sqltext] => ) oci_connect1
Дополнительная информация о OCI
OCI8 Support enabled Version 1.4.7 Revision $Revision: 321634 $ Active Persistent Connections 0 Active Connections 0 Oracle Run-time Client Library Version 10.2.0.1.0 Oracle Instant Client Version 11.2 Temporary Lob support enabled Collections support enabled Directive Local Value Master Value oci8.connection_class no value no value oci8.default_prefetch 100 100 oci8.events Off Off oci8.max_persistent -1 -1 oci8.old_oci_close_semantics Off Off oci8.persistent_timeout -1 -1 oci8.ping_interval 60 60 oci8.privileged_connect Off Off oci8.statement_cache_size 20 20 Apache Version : 2.2.21 PHP Version : 5.3.9
Я был бы рад, если бы кто-нибудь мог намекнуть мне, что мне может не хватать
Рассматривая конфигурацию, у вас установлены как клиент Oracle, так и Oracle Instant Client:
Oracle Run-time Client Library Version 10.2.0.1.0 Oracle Instant Client Version 11.2
Тем не менее, мой опыт в том, что PHP будет использовать только один или другой – в основном, какой бы набор библиотек не был найден, сначала будет использоваться. Поскольку вы можете подключиться отлично к Oracle 10g, но не к 11g, это говорит о том, что клиентская библиотека 10g является «более высокой» на вашем пути, чем библиотеки Instant Client.
Два варианта, которые я предлагаю изучить:
Я никогда не получал PHP правильно работать с Instant Client – я сдал и установил полный клиент, поэтому моя личная рекомендация – вариант 1, но если это не практично в вашей среде, сначала работайте с PATH.