【问题标题】:Check if remote database is connected检查远程数据库是否连接
【发布时间】:2017-02-10 21:32:32
【问题描述】:

我目前正在连接到远程数据库

mysqli_connect('ip','username','password','db');

连接成功,但我想在计算机离线时进行验证。我怎样才能验证它?谢谢

【问题讨论】:

  • mysqli_connect() 如果出错则返回FALSE

标签: php mysqli database-connection cpanel remote-access


【解决方案1】:

read the documentation了吗?

实际上是页面上唯一的示例:

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

【讨论】:

【解决方案2】:

$mysql = mysqli_connect('ip','username','password','db');

// stop execution if error occurs during the conbection
if ( mysqli_connect_errno ) exit( "failed");

// check if connection is active
if ( mysqli_ping( $mysql ) {
    echo 'alive';
} else {
    echo 'not active';

    mysqli_close( $mysql );
}

`mysqli_ping()' 函数在成功时返回 true,在失败时返回 false。

【讨论】:

    【解决方案3】:

    您可以通过以下函数打开一个套接字来检查数据库服务器是否已启动

     function ping($host, $port, $timeout) 
     { 
       $tB = microtime(true); 
       $fP = fSockOpen($host, $port, $errno, $errstr, $timeout); 
       if (!$fP) { return "down"; } 
       $tA = microtime(true); 
       return round((($tA - $tB) * 1000), 0)." ms"; 
     }
    

    之后,您可以使用 sqli_connect 的返回参数来检查进一步的测试(即 MySql 服务正在运行,db 存在或用户已通过身份验证使用 db)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2019-08-10
      相关资源
      最近更新 更多