使用PHP连接到Oracle DB

时间:2019-12-04 02:26:09

标签: php oracle

我正在尝试使用以下代码使用PHP连接到Oracle数据库:

$username = 'my_username';
$password = 'my_password';
$environment = 'my_environment';
// CHANGE HOST, PORT, SID
$tns = "
(DESCRIPTION =
     (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = my_host)(PORT = my_port))
     )
     (CONNECT_DATA =
          (SID = my_sid)
     )
)
";

$conn = oci_connect($username, $password, $tns);

if (!$conn) {
   $e = oci_error();
   trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

工作正常。但是我想做的是连接而不用纯文本显示用户名和密码。就像在Postman中一样,您可以使用基本身份验证标头代替纯文本。有办法吗?

1 个答案:

答案 0 :(得分:1)

首选解决方案是使用Oracle钱包,并执行“外部身份验证”。请参见Oracle免费The Underground PHP and Oracle Manual的p116。

设置好钱包后,您的代码将如下所示:

$c = oci_connect("/", "", $tns, null, OCI_CRED_EXT);

另一种替代方法是从环境变量中传递密码。