今天在同乙個php程序中用mysql_connect新建了兩個mysql控制代碼,這兩個控制代碼都連線同一臺資料庫,只不過操作的資料庫dbname不同,假設這兩個控制代碼分別是$dbha和$dbhb,它們對應的資料庫dbname分別是dba和dbb。我在$dbha上操作dba中的時候缺報錯是dbb中沒有表***。。。
起初以為是我應用層邏輯處理在某個地方弄混了兩個控制代碼,翻半天沒翻出來,後來在這裡發現了同樣的問題。
原來是mysql_connect的實現中,如果再次呼叫它時操作的是同乙個資料庫,那麼會返回第一次呼叫mysql_connect返回的那個控制代碼。所以在同乙個php程序中對同乙個資料庫建立多個連線時,應該這麼搞:
$db1 = mysql_connect($host1, $user1, $passwd1, true);
$db2 = mysql_connect($host2, $user2, $passwd2, true);
這裡有對第四個引數的詳細解釋:
如果用同樣的引數第二次呼叫 mysql_connect(),將不會建立新連線,而將返回已經開啟的連線標識。引數new_link
改變此行為並使 mysql_connect() 總是開啟新的連線,甚至當 mysql_connect() 曾在前面被用同樣的引數呼叫過。
PHP 多個mysql連線的問題
今天在同乙個php程序中用mysql connect新建了兩個mysql控制代碼,這兩個控制代碼都連線同一臺資料庫,只不過操作的資料庫 dbname不同,假設這兩個控制代碼分別是 dbha和 dbhb,它們對應的資料庫dbname分別是dba和dbb。我在 dbha上操作dba中的時 候缺報錯是db...
mysql 函式多個連線 mysql 多個字段拼接
mysql的查詢結果行欄位拼接,可以用下面兩個函式實現 1.concat函式 mysql select concat 1 2 3 from test concat 1 2 3 123 如果連線串中存在null,則返回結果為null mysql select concat 1 2 null,3 fro...
mysql與php的連線 PHP 連線mysql
php 連線mysql mysqlhost localhost mysqluser root mysqlpass mysqldata mydata connect mysql connect mysqlhost,mysqluser,mysqlpass or die 錯誤 mysql error my...