2011-11-09 35 views
0

我正在建立一个安装项目(吸收为WordPress)和用户提供数据库信息(服务器,用户名,密码和数据库)的项目。现在,我必须检查它是否可以连接到提供的数据库。我想这个代码,但它似乎不工作(我使用的mysqli BTW):PHP检查mysql连接

public function checkDataBaseConnection($server, $user, $pass, $db) 
{ 
    $conn = @mysqli_connect($server, $user, $pass, $db); 
    if(mysqli_connect_error()) 
    { 
     return FALSE; 
    } 
    else 
    { 
     mysqli_close($conn); 
     return TRUE; 
    } 
} 

我可以使用哪些其他的方式来检查服务器是否可以连接到数据库?

回答

1

一两件事:删除@,抑制一些PHP警告。

第二件事:试试这个:

public function checkDataBaseConnection($server, $user, $pass, $db) 
{ 
    $conn = @mysqli_connect($server, $user, $pass, $db); 
    if(!$conn) 
    { 
     return FALSE; 
    } 
    else 
    { 
     //mysqli_close($conn); why would you close the connection? 
     return $conn; 
    } 
} 
0

你有没有试过类似的东西?

if (checkDataBaseConnection($server, $user, $pass, $db)) 
    echo "Success!"; 
else 
    echo "Fail."; 

顺便说一句,你只是可以做这样

mysqli_connect($server, $user, $pass) or die('Connection failed'); 
0

好吧,如果你看一下mysqli_connect PHP页面,你可以看到这个例子:

<?php 
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db'); 

/* 
* This is the "official" OO way to do it, 
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0. 
*/ 
if ($mysqli->connect_error) { 
    die('Connect Error (' . $mysqli->connect_errno . ') ' 
      . $mysqli->connect_error); 
} 

/* 
* Use this instead of $connect_error if you need to ensure 
* compatibility with PHP versions prior to 5.2.9 and 5.3.0. 
*/ 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 

echo 'Success... ' . $mysqli->host_info . "\n"; 

$mysqli->close(); 
?>