如何测试Oracle连接

时间:2008-12-23 18:32:31

标签: php oracle

我正在尝试连接到当前处于脱机状态的Oracle数据库。当它在线时它不是问题,但是,现在它已经离线我的程序挂起了$ connection = oci_connect()线并超时。如果它不存在,我如何简单地检查连接并保释?

4 个答案:

答案 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

不一定说数据库处于脱机状态,但如果无法打开连接,则会发生异常