[英]PHP OCI8 warning while uploading an image to Oracle DB as BLOB
[英]Check multiple Oracle DB conenction using PHP 5.4 and OCI8
我想创建一个简单的网页,使用PHP 5.4和OCI 8检查我的几个Oracle实例在实验室中的可用性。
通常,它适用于所有运行中的实例,但是如果我有一个实例处于关闭状态,则脚本出口不检查其他实例!
让我告诉我我的小代码:
<?php
$c1_ORCL11 = oci_connect("system", "mypassword", 'ORCL11');
$c2_ORCL21 = oci_connect("system", "mypassword", 'ORCL21');
$c3_ORCL23 = oci_connect("system", "mypassword", 'ORCL23');
function check_connect ($conn, $sid)
{
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
break;
}
else {
print "$sid: Connected to Oracle!<BR>";
}
// Close the Oracle connection
oci_close($conn);
}
check_connect($c1_ORCL11,'ORCL11');
check_connect($c3_ORCL23,'ORCL23');
check_connect($c2_ORCL21,'ORCL22');
?>
实例ORCL11和ORCL21处于启动状态,而ORCL23处于DOWN状态。 如果执行代码,将得到以下输出:
ORCL11: Connected to Oracle!
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
这个想法也是为了获得“ ORCL21:已连接到Oracle!”,但是如果我无法连接到实例,则代码将退出。 如果我将订单更改为:
check_connect($c1_ORCL11,'ORCL11');
check_connect($c2_ORCL21,'ORCL21');
check_connect($c3_ORCL23,'ORCL23');
我得到以下输出:
ORCL11: Connected to Oracle!
ORCL21: Connected to Oracle!
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
如果我将订单更改为:
check_connect($c3_ORCL23,'ORCL23');
check_connect($c1_ORCL11,'ORCL11');
check_connect($c2_ORCL21,'ORCL21');
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
因此,如果我有一堆实例,并且列表中的第一个实例是“ DOWN”,则即使有UP并且正在运行,其他实例也不会显示在我的网页上:-(
任何想法如何解决这一问题?
在此先感谢您的帮助!
问候,
拉尔夫
发布问题后,我看到了自己的错误……很奇怪,在几个小时前就看了一下,却没有发现……反正……在消除“中断”之后它运行良好; 在if情况下执行命令。 我的假设是只是打破if情况并继续,但是看起来在这一阶段,break退出了整个代码!
这是完整的代码和结果:
<?php
$c1_ORCL11 = oci_connect("system", "<mypasswd>", 'ORCL11');
$c2_ORCL21 = oci_connect("system", "<mypasswd>", 'ORCL21');
$c3_ORCL23 = oci_connect("system", "<mypasswd>", 'ORCL23');
function check_connect ($conn, $sid)
{
if (!$conn) {
$m = oci_error();
echo "$sid: ", $m['message'], "<BR>";
//break;
}
else {
print "$sid: Connected to Oracle!<BR>";
}
// Close the Oracle connection
oci_close($conn);
}
check_connect($c3_ORCL23,'ORCL23');
check_connect($c1_ORCL11,'ORCL11');
check_connect($c2_ORCL21,'ORCL21');
?>
输出:
ORCL23: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
ORCL11: Connected to Oracle!
ORCL21: Connected to Oracle!
问候,
拉尔夫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.