Php 使用OID LDAP连接到具有条令的oracle数据库

Php 使用OID LDAP连接到具有条令的oracle数据库,php,symfony,doctrine,oci8,oid,Php,Symfony,Doctrine,Oci8,Oid,是否可以使用Oracle Internet目录(OID)连接到Oracle数据库以检索数据库IP? 我找不到任何文件 谢谢。首先,如果您想连接到Oracle数据库(我不知道它是否完全支持您的用例),您应该使用Doctrineoci8 PHP驱动程序 其次,您可以简单地从外部设置环境变量,例如,首先在“导入”部分下面的“config.yml”中添加以下行: imports: - { resource: readEnvParams.php } 然后在同一文件夹中创建一个“readEnvParams

是否可以使用Oracle Internet目录(OID)连接到Oracle数据库以检索数据库IP? 我找不到任何文件


谢谢。

首先,如果您想连接到Oracle数据库(我不知道它是否完全支持您的用例),您应该使用Doctrineoci8 PHP驱动程序

其次,您可以简单地从外部设置环境变量,例如,首先在“导入”部分下面的“config.yml”中添加以下行:

imports:
- { resource: readEnvParams.php }
然后在同一文件夹中创建一个“readEnvParams.php”文件,首先在OID中查找必要的信息,并在获得该信息后(例如,在名为$OID的变量中),设置参数:

$oid = functionToConnectToOIDandRetrieveInfo(OidConnection); //pseudo code

$container->setParameter('database_host', $oid->host);
$container->setParameter('database_port', $oid->port);
$container->setParameter('database_name', $oid->name);
$container->setParameter('database_user', $oid->username);
$container->setParameter('database_password', $oid->password);
重要信息(更新):

重要的是要了解,当使用这种方法更改IP时,您可能必须重新启动Symfony应用程序,或者找到另一种方法在运行Symfony容器时反映更改的IP


如果您的动态IP没有任何回退,并且配置的OID连接没有超时,则Symfony应用程序可能需要很长时间才能有效启动,或者根本无法启动,因为无法建立数据库连接(例如,当OID不可用时)。

非常感谢您的回答。因此,您认为我应该在readEnvParams.php中使用php ldap检索oracle服务器的ip地址吗?是的,或者您可以以任何方式获取它-重要的部分是如何在容器中设置动态参数。否则,我没有正确理解您的问题。@TheMakou有一种过时的、被否决的方式通过PHP on连接到ODI Ldap,也许这有助于您开发此部分。数据库的IP存储在Ldap中。因此,我想检索IP,以便能够使用条令连接到数据库。是的,连接到LDAP,然后检索IP并将其设置为env参数,如我的回答所示。