2013-07-22 83 views
2

我必須在兩個不同數據庫的表中插入數據。 我已經爲database1創建了database1和table1, 另外我還爲database2創建了database2和table2。如何在php中的兩個不同數據庫的兩個不同表中插入數據

爲了將我寫的代碼數據,

$connect = mysql_connect("localhost","root",""); //database connection 

mysql_select_db("database1",$connect); // select database1 
mysql_select_db("database2",$connect); // select database2 

$sql = mysql_query("INSERT INTO database1.table1 (contact_first, contact_last, contact_email) VALUES('abc','xyz','[email protected]')"); //insert record to first table 
$sql1 =mysql_query("INSERT INTO database2.table2 (contact_first, contact_last, contact_email) VALUES('abc','xyz','[email protected]')"); //insert record to second table 

請建議我上面的代碼中插入數據的修正。 感謝先進!

+1

這可能會幫助你[兩個db連接](http://stackoverflow.com/questions/274892/how-do-you-connect-to-multiple-mysql-databases-on-a-single-webpage) –

回答

2

試試下面的代碼:

$connect1 = mysql_connect("localhost","root",""); 
mysql_select_db("database1", $connect1); 
$res1 = mysql_query("query",$connect1); 

$connect2 = mysql_connect("localhost","root","",true); 
mysql_select_db("database2", $connect2); 
$res2 = mysql_query("query",$connect2); 

注:那麼的mysql_connect具有 表示鏈路是否將被創建或沒有其他可選的布爾參數。當我們連接到 $ connect2並將此可選參數設置爲'true'時,因此兩個鏈接都將保留爲 。

+0

謝謝它的工作原理!!!!!!!!! –

1

只需連接到1數據庫,插入新行,斷開連接,連接到另一個數據庫,將行插入該數據庫並斷開連接。

或者您可以使用$connect1$connect2來分別引用它們中的每一個,並且並行地進行插入。

編輯:順便說一句,你可以選擇用mysql_connect的第4'參數數據庫,不需要使用mysql_select_db

而且很重要的是,你應該寫mysqlimysql。因爲mysql函數不再支持更長的時間。

+0

但他有1個連接,有2個不同的db選擇。其實它應該像這樣工作。 – GFP

+0

@ zoran404如果你以他的代碼作爲例子添加它,將會更加有用,通過好方法 –

+0

他應該能夠自己編寫代碼。 – zoran404

0

首先創建兩個數據庫連接

$connect1 = mysql_connect("localhost","root",""); 
$connect2 = mysql_connect("localhost","root",""); 

然後,選擇用於每個連接的數據庫。

mysql_select_db("database1",$connect1); // select database1 
mysql_select_db("database2",$connect2); // select database2 

然後通過在mysql_query的第二參數,它是該查詢的相應的連接。

mysql_query("SELECT ... ", $connect1); 
mysql_query("SELECT ... ", $connect2); 
+0

感謝您在添加$ connect2 = mysql_connect(「localhost」,「root」,「」,true)後回答它的工作方式。 –

0

好,如果有一個模式在數據庫名稱,表格和查詢是完全一樣的,你可以使用一個循環:

for ($i = 1; $i <=2; $i++) { 
    mysql_select_db("database".$i, $connect); 
    $sql = mysql_query("INSERT INTO table".$i." (contact_first, contact_last, contact_email) VALUES('abc','xyz','[email protected]')"); 
    mysql_close; 
} 

但是,使用mysql_ *強烈不推薦,因爲它從最後一個穩定的PHP版本被棄用,並被認爲是不安全的。改爲使用PDO或MySQLi。 PHP的官方網站建議文章「選擇一個API」:http://www.php.net/manual/en/mysqlinfo.api.choosing.php

+0

爲什麼只有兩個數據庫只有一個循環來連接/插入和關閉這不是一個通用的解決方案 –

+0

如果架構增加,只會改變循環。作爲解決方案,您建議什麼?手動構建每個查詢?我會,但如果查詢完全一樣,我會使用循環 –

+0

但是想一想,沒有人會將數據庫命名爲'... 1,.. 2,.. 3等等' –

0

嗯,這就是我該怎麼做......

1 - 連接 - >你正在做正確的 2 - 檢查錯誤 3 - 使用一個數據庫(1)你希望把數據(而不是「選擇」) 4 - 檢查錯誤 (1) 6 - 檢查錯誤 7 - 使用其他數據庫(2) 8 - 檢查錯誤 9 - 將數據插入(2) - 因爲那是現在使用的那個 10 - 檢查錯誤

是的,是偏執狂:P希望這可以幫助

相關問題