關於同時連線到不同主機的一些注意事項...
我在一個主要從一個資料庫提取內容的網站上工作,但使用外國伺服器上的資料庫來驗證授權。人們可能會期望以下程式碼可以正常運作
<?php
// 開啟與主要資料庫的連線
$res1 = mysql_connect($host1, $user1, $pass1);
mysql_select_db($db1);
// 開啟與授權伺服器的連線
$res2 = mysql_connect($host2, $user2, $pass2);
mysql_select_db($db2, $res2);
// 提取授權資料並在完成後關閉連線
mysql_query($check_sql, $res2);
// ...
mysql_close($res2);
// 現在從主要資料庫提取內容
// 未指定資源應預設為最後開啟的資料庫
mysql_query($query);
// ...
?>
結果發現最後這個查詢,因為找不到有效的連線,會嘗試使用沒有參數的 mysql_connect() 進行連線。但如果改用 mysql_query($query, $res1),或者再次執行這個主機的 mysql_connect,則可以正常運作。因此,似乎不可能讓程式碼中包含一個涵蓋全局的資料庫連線,同時穿插著與另一個主機/資料庫的臨時連線....