在现有(传统)应用程序中使用PHP PDO。多个SQL连接?

时间:2011-01-27 07:36:35

标签: php mysql pdo

我的任务是为现有的旧版PHP应用程序编写一堆扩展。原来的应用程序是...呃...非常糟糕。它是125K行的意大利面条代码,散布着原始SQL语句并使用mysql_*函数。每天我都会发现真正属于TheDailyWTF的东西。到目前为止,我的计划是尽可能将新代码与遗留代码分开。对于数据库访问,我计划使用Idiorm and Paris,这是在PDO之上构建的两个非常好的小库。

但是我将如何处理数据库连接?或者PHP如何在内部处理它们?我担心使用PDO,每次调用页面都会打开两个与数据库分开的连接。一个来自legact mysql_connect(),一个来自PDO。这是真的,还是PHP只是在后台共享相同的连接?有没有办法让PDO和遗留mysql_*函数使用相同的数据库连接?它是否真的重要我在每个页面加载时打开两个连接(注意:应用程序没有使用事务)?

我有点犹豫是否要查看125K行的意大利面条代码并用其他内容替换所有mysql_*函数。我希望尽可能少地触摸原始代码,而不是让我的大脑破坏它。

提前感谢任何建议。

2 个答案:

答案 0 :(得分:2)

你将有两个连接,但它不会破坏任何东西。看到这个人的答案问同样的问题:

Getting a PHP PDO connection from a mysql_connect()?

答案 1 :(得分:0)

这两个扩展名不会相互通信,因此您将以两个连接结束。这将是一项非常多的工作,很少有人会让IMO受益 - 只有你那些无法完全转换的人。