Getting a PHP PDO connection from a mysql_connect()?

前端 未结 2 1898
我寻月下人不归
我寻月下人不归 2020-11-30 11:55

I have a legacy PHP/MySQL app that calls mysql_connect(). Tons of existing downstream code makes mysql_query() calls, either directly or through wrappers, using

2条回答
  •  借酒劲吻你
    2020-11-30 12:21

    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);
    


    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)
    

    (The connections in question are the two last one, which appeared when I started the PHP script, and disappeared after 5 seconds)

提交回复
热议问题