mysql connect pdo,从mysql_connect()获取PHP PDO连接?

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 this connection.

For new code that I develop on the app, I would like to start using PDO.

If I make a PDO connection using the same host/user/pass/dbname credentials, might I be so lucky that under the hood, PHP will re-use the original connection? Or will PHP create two distinct connections to the server (undesirable, albeit totally understandable)?

Thanks!

解决方案

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值