我有一個非常大的非結構化腳本。進行臨時數據庫連接而不會丟失原始默認連接
在腳本的某個位置,建立了數據庫連接。
有一段時間後,我需要建立一個新的連接到另一個數據庫,運行查詢然後斷開連接。
完成此操作後,我需要所有後續的mysql_query()調用才能使用原始數據庫鏈接。
我知道我可以從第一個mysql_connect()捕獲鏈接標識符,並在所有相關的mysql_query()調用中使用該標識符,但我不想修改比我更多的代碼。我希望做這樣的事情:
//... loads of code ...
mysql_connect("original connection");
mysql_query(...); // don't want to modify these lines
//... loads more code ...
$link = get_current_mysql_link_identifier(); // imaginary function
$new_link = mysql_connect("my new connection");
mysql_query(...); // uses new connection
mysql_close($new_link);
reinstate_old_link($link); // imaginary function
//... loads more code ...
mysql_query(...) // line remains unchanged. uses original DB link
沒有這些虛函數,一旦第二連接關閉,請求mysql_query()不會默認爲原始連接;它會繼續嘗試使用更新的關閉連接。
我認爲,**但**我很可能是**錯誤**,一旦第二次連接關閉,mysql_' *函數將在下一個可用連接上運行,在這種情況下,它將是第一個連接。 – Treffynnon 2011-04-13 16:50:03
不是一個優雅的解決方案,但爲什麼在完成輔助數據庫查詢後,您不會重新連接到第一個數據庫? – Raisen 2011-04-13 16:54:46
@Treffynnon我已經做了一些測試,看起來它不會回退到mysql_close()之後的原始問題() – aidan 2011-04-13 17:00:24