如何使用PHP计算MySQL连接数

时间:2018-05-04 07:52:13

标签: php mysql mysqli

我使用以下php代码来检查MySQL连接的数量

$connection=mysql_connect("localhost","$mysql_user","$mysql_pwd");
if (mysqli_connect_errno())
  { echo "NO CONNECTION"; }
  else
  {
unset ($result);
$result = mysql_list_processes($connection);
while ($row = mysql_fetch_assoc($result)){
$mysql_data[]=$row["db"];
}
mysql_free_result($result);
$n_connections=count($mysql_data)-1;
}
echo "$n_connections";

由于在PHP 5.5.0中不推荐使用mysql_connect,因此我使用

更改了$ connection
$connection=mysqli_connect("localhost","$mysql_user","$mysql_pwd", "$mysql_db");

执行此更改后,$ n_connections不再返回正确的值,代码中出了什么问题?

谢谢

注意:php.net中的函数mysqli_list_processes没有帮助,我尝试了它并没有用。

注意2:这篇文章不是"如何将mysql更改为mysqli?" ,我的问题是替换" $ result = mysql_list_processes($ connection);"

2 个答案:

答案 0 :(得分:1)

您只需尝试此查询

即可
show status where `variable_name` = 'Threads_connected';

result from phpmyadmin

答案 1 :(得分:0)

这应解决问题并返回正确数量的数据库连接。

$connection=mysqli_connect("localhost","$mysql_user","$mysql_pwd", "$mysql_db");
if (mysqli_connect_errno())
  { echo "NO CONNECTION"; }
  else
  {

if ($result = mysqli_query($connection, "SHOW FULL PROCESSLIST")) {
    $n_connections=mysqli_num_rows($result);
    mysqli_free_result($result);
 $n_connections=$n_connections-1;
}
}
echo "$n_connections";