【发布时间】:2012-07-24 08:52:23
【问题描述】:
我正在使用 php 5.4.4,似乎与 mysqli 的持久连接不起作用。具体来说,让我们看看这个脚本:
<?php
$links = array();
for ($i = 0; $i < 15; $i++) {
$links[] = mysqli_connect('p:192.168.1.40', 'USER', 'PWD', 'DB', 3306);
}
sleep(15);
然后,当脚本运行时,打开另一个 shell 并:
netstat -an | grep 192.168.1.40:3306
tcp 0 0 192.168.1.6:52441 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52454 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52445 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52443 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52446 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52449 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52452 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52442 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52450 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52448 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52440 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52447 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52444 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52451 192.168.1.40:3306 ESTABLISHED
tcp 0 0 192.168.1.6:52453 192.168.1.40:3306 ESTABLISHED
我认为这是一个错误:PHP 应该只打开一个持久连接而不是 15 个不同的连接。
这是真的吗?
谢谢大家。
【问题讨论】:
-
为什么要使用持久连接?您可能造成的弊大于利
-
谢谢马丁,但我需要使用它!
-
使用 $link = mysqli_init(); $links[] = mysqli_real_connect($link, 'p:192.168.1.6', 'USER', 'PWD', 'DB', 3306);似乎工作
标签: php mysqli persistent-connection