且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从 mysql_connect() 获取 PHP PDO 连接?

更新时间:2023-02-26 10:24:38

如果您使用两个不同的 API(即 mysql_* 和 PDO),PHP 将生成两个不同的连接.

If you are using two different APIs (i.e. mysql_* and PDO), PHP will generate two different connections.


并且,作为证明",请考虑这部分代码:


And, as a "proof", consider this portion of code :

$db = mysql_connect('localhost', 'USER', 'PASSWORD');
$pdo = new PDO('mysql://@localhost/astralblog', 'USER', 'PASSWORD');
sleep(5);


运行这将在 MySQL 服务器上产生两个不同的连接——它将休眠 5 秒:


Running this will cause two distinct connections, on the MySQL server -- which will sleep for 5 seconds :

mysql> show processlist;
+----+------------+-----------------+------------+---------+------+-------+------------------+
| Id | User       | Host            | db         | Command | Time | State | Info             |
+----+------------+-----------------+------------+---------+------+-------+------------------+
| 41 | astralblog | localhost:46551 | astralblog | Sleep   |  188 |       | NULL             |
| 42 | astralblog | localhost:46552 | astralblog | Sleep   |  188 |       | NULL             |
| 43 | astralblog | localhost       | astralblog | Query   |    0 | NULL  | show processlist |
| 64 | astralblog | localhost       | NULL       | Sleep   |    4 |       | NULL             |
| 65 | astralblog | localhost       | NULL       | Sleep   |    4 |       | NULL             |
+----+------------+-----------------+------------+---------+------+-------+------------------+
5 rows in set (0,00 sec)

(有问题的连接是最后两个,在我启动PHP脚本时出现,5秒后消失)