PHP 多個mysql連接的問題


今天在同一個php進程中用mysql_connect新建了兩個mysql句柄,這兩個句柄都連接同一台數據庫,只不過操作的數據庫dbname不同,假設這兩個句柄分別是$dbhA和$dbhB,它們對應的數據庫dbname分別是dbA和dbB。我在$dbhA上操作dbA中的時候缺報錯是dbB中沒有表xxx。。。

起初以為是我應用層邏輯處理在某個地方弄混了兩個句柄,翻半天沒翻出來,后來在這里發現了同樣的問題。

原來是mysql_connect的實現中,如果再次調用它時操作的是同一個數據庫,那么會返回第一次調用mysql_connect返回的那個句柄。所以在同一個PHP進程中對同一個數據庫創建多個連接時,應該這么搞:

$db1 = mysql_connect($host1, $user1, $passwd1, true);
$db2 = mysql_connect($host2, $user2, $passwd2, true);

  http://php.net/manual/zh/function.mysql-connect.php 這里有對第四個參數的詳細解釋:

如果用同樣的參數第二次調用 mysql_connect(),將不會建立新連接,而將返回已經打開的連接標識。參數new_link 改變此行為並使 mysql_connect() 總是打開新的連接,甚至當 mysql_connect() 曾在前面被用同樣的參數調用過。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM