我们有这个多个数据库,我们需要将它们全部连接在一起。我们正在使用关系表来回交谈。多个数据库将帮助我们单独备份项目或版本。
注册数据库:用户登录
项目数据库:登录用户下的项目数量
版本数据库:所选项目下的版本数
问题
因为我们使用0
和1
,所以一次只能有一个用户能够连接到数据库。我们需要的是下面流程图中的那个。多个用户可以连接到数据库并处理不同的项目>不同的版本。
谢谢!
旁注:我们愿意尝试不同的方法
https://github.com/serilog/serilog/issues/825
<?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 :(得分:4)
首先我建议你使用mysqli或PDO以外的mysql,因为在PHP 5.5之后版本的mysql函数已弃用,因此将来不会提供mysql函数
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);
使用Mysqli进行多重连接
$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");
答案 1 :(得分:0)
$conn1 = mysqli_connect( $db_host, $db_user, $db_pass, $db_name );
$conn2 = mysqli_connect( $db_host2, $db_user2, $db_pass2, $db_name2 );
假设您有一个名为chat1和chat2的数据库,以及一个名为tbl_chat1和tbl_chat2的表。
$sql1 = "SELECT `id`, `msgs` FROM `chat1` . `tbl_chat1`";
$sql2 = "SELECT `id`, `msgs` FROM `chat2` . `tbl_chat2`";
$result1 = mysqli_query($conn1, $sql1);
$result2 = mysqli_query($conn2, $sql2);
但是,无需连接多个数据库就可以实现数据库备份。