2016-08-12 36 views
1

我們有這個多個數據庫,我們需要將它們連接在一起。我們正在使用關係表來回轉換。多個數據庫將幫助我們分別備份項目或版本。使用PHP和MySQL連接多個數據庫

註冊數據庫:用戶登錄
項目數據庫:下登錄的用戶項目的數量。
版本數據庫:所選擇的項目

問題
下版本的數字,因爲我們使用的01,只能有一個用戶可以同時連接到數據庫。我們需要的是如下面流程圖中的那個。多個用戶可以連接到數據庫,並在不同的項目上工作>不同的版本。

謝謝!

旁註:我們是開放的嘗試不同的方法

enter image description here

<?php 
//database error message 
$connect_error='We could not able to connect. Please try later'; 

// Registration table 
$main = mysql_connect('localhost','root','',true) or die($connect_error); 
mysql_select_db('registration-table', $main) ; 

// Obtaining session id 
if(isset($_SESSION['id'])===true){ 
    $session = $_SESSION['id']; 

    // Filtering projects based on 0 and 1 
    $sql = mysql_query("SELECT * FROM project1_table where user_id = '$session' and database_active = '0'",$main); 
    $row = mysql_fetch_array($sql); 

    // Each Project has Versions 
    $project_id = $row['id']; 
    $sqli = mysql_query("SELECT * FROM version_table where project_id = '$project_id' and database_active ='0'",$main); 
    $emp = mysql_fetch_array($sqli); 

    // Fetching the database name 
    $db_name = $emp['database_name']; 
    $sub = mysql_connect('localhost','root','',true) or die($connect_error); 
    mysql_select_db("$db_name", $sub) ; 
    } 
?> 
+0

,因爲你的數據庫是同一臺主機上,你可以前綴表一個數據庫?例如select * from database1.table1 ... – SIDU

+0

我們試過這個,但沒有奏效。 – Beekeeper

+0

對於多個數據庫查詢請看看https://stackoverflow.com/questions/274892/how-do-you-connect-to-multiple-mysql-databases-on-a-single-webpage/45688265#45688265 – Nagibaba

回答

4

所有我會建議你使用首先mysqliPDO其他那麼MySQL,因爲畢竟PHP 5.5版本的MySQL功能不推薦使用,因此mysql函數將來不可用

多個數據庫連接使用的mysqli ction在MySQL

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('database1', $dbh1); 
mysql_select_db('database2', $dbh2); 

mysql_query('select * from tablename', $dbh1); 
mysql_query('select * from tablename', $dbh2); 

多個連接

$link1 = new mysqli($hostname, $username, $password,$database1); 
$link2 = new mysqli($hostname, $username, $password,$database2); 

mysqli_query($link1,"SELECT * FROM table"); 
mysqli_query($link2,"SELECT * FROM table"); 

在PDO多個數據庫連接

$conn1 = new PDO("mysql:host=$hostname;dbname=database1", $username, $password); 
$conn2 = new PDO("mysql:host=$hostname;dbname=database1", $username, $password); 

$conn1->query("SELECT * FROM table"); 
$conn1->query("SELECT * FROM table"); 
+0

嗨對於遲到的回覆感到遺憾,我們趕上了另一項工作。我們已經嘗試了您的答案。我們不想切換數據庫(從一個到兩個)。我們想要的是繼續看第一個並持有第二個。 – Beekeeper