我正在尝试连接到当前处于脱机状态的Oracle数据库。当它在线时它不是问题,但是,现在它已经离线我的程序挂起了$ connection = oci_connect()线并超时。如果它不存在,我如何简单地检查连接并保释?
答案 0 :(得分:6)
试试这个(填写你的IP和端口):
if ( @fsockopen($db_ip,$db_port ) ) {
//connect to database
} else {
// didn't work
}
答案 1 :(得分:1)
这会给你一个手动错误,并且会返回实际错误。
$connection = oci_connect() or die("Critical Error: Could not connect to database.\n\n". oci_error());
确保对此进行测试,希望Oracle错误不会像返回连接字符串(使用您的数据库密码)那样做一些愚蠢的事情,但在您亲眼看到之前我不会假设。
答案 2 :(得分:0)
您可以从双重选择null。
好的,我想,现在我看到了你的要求。
您想知道在连接数据库之前如何判断数据库是否已启动?
您可以使用TNSPING查看数据库是否已启动...好吧,也许这不是100%准确但它是一个很好的指标。转到命令提示符并键入TNSPING并按Enter键。那么你必须弄清楚如何从PHP调用命令行工具。
答案 3 :(得分:-2)
这是我在ASP.NET中所做的事情
Dim OracleConn As New OracleConnection(YOUR CONNECTION STRING HERE)
Try
OracleConn.Open()
OracleConn.Close()
Catch ex As Exception
Session("ErrorMessage") = "OracleConn: " & ex.Message
Response.Redirect("AccessDenied.aspx")
End Try
不一定说数据库处于脱机状态,但如果无法打开连接,则会发生异常