Ben birden fazla veritabanı (Oracle, MySQL ve MSSQL) bağlanan bir komut dosyası var, her veritabanı bağlantısı, her seferinde komut dosyası çalışır kullanılan olmayabilir ama hepsi tek bir komut dosyası yürütme kullanılan olabilir. Benim soru, "tüm bağlantıları kullanılamaz olsa bile bir kez senaryonun başında tüm veritabanlarına bağlanmak için daha iyi mi edilir. Yoksa gerektiği gibi onlara bağlanmak için daha iyidir, sadece yakalamak ihtiyacım olduğunu ifade Bir döngü içinde bağlantı çağrı var (yani veritabanı bağlantısı döngü kez X miktar için yeni olurdu).
Evet Örnek Kod # 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
}
Evet Örnek Kod # 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);
}
şimdi kalıcı bir bağlantı kullanabilirsiniz biliyorum ama bu bir döngü içinde her veritabanı için açık bağlantı yanı olurdu? mysql_pconnect(), mssql_pconnect() ve adodb for Oracle persistent connection method gibi. Ben kalıcı bağlantısı da kaynak domuzu olabilir biliyorum ve ben en iyi performans / uygulama arıyorum gibi.
İşte why persistent connections could cause problems iyi bir yazıdır