我有一个连接到多个数据库(Oracle,MySQL和MSSQL)的脚本,每次脚本运行时可能不会使用每个数据库连接,但所有数据库连接都可以用于单个脚本执行。我的问题是,“在脚本开始时连接所有数据库是否更好,即使所有连接都可能不被使用,还是根据需要连接到它们,最好的办法就是我需要以具有在一个循环中的连接呼叫(以便数据库连接将新的用于在循环的次数X量)PHP数据库连接练习
呀示例代码#1:
// Connections at the beginning of the script
$dbh_oracle = connect2db();
$dbh_mysql = connect2db();
$dbh_mssql = connect2db();
for ($i=1; $i<=5; $i++) {
// NOTE: might not use all the connections
$rs = queryDb($query,$dbh_*); // $dbh can be any of the 3 connections
}
呀实施例编号#2:
// Connections in the loop
for ($i=1; $i<=5; $i++) {
// NOTE: Would use all the connections but connecting multiple times
$dbh_oracle = connect2db();
$dbh_mysql = connect2db();
$dbh_mssql = connect2db();
$rs_oracle = queryDb($query,$dbh_oracle);
$rs_mysql = queryDb($query,$dbh_mysql);
$rs_mssql = queryDb($query,$dbh_mssql);
}
现在我知道你可以使用持续连接,但会那个循环中的每个数据库都打开一个连接?像mysql_pconnect(),mssql_pconnect()和adodb for Oracle persistent connection method。我知道持续连接也可以是资源浪费,并且我正在寻找最佳性能/实践。
这里是why persistent connections could cause problems
我喜欢这种方法,我有一个类似的类,我创建了使用类型(mysql,mssql,oracle)来定义连接/查询功能的XML配置和通用连接和查询类。 – 2010-04-01 14:31:58
@Phill如果您使用PDO,甚至不需要这样做,它可以在不更改代码的情况下无论连接到哪个数据库都能正常工作。 – ryeguy 2010-04-01 14:39:26
将不得不检查PDO,再次thnx – 2010-04-01 14:46:45