同时连接到同一主机上的两个数据库

时间:2014-04-21 14:00:35

标签: php mysql

如果两个数据库位于同一主机上并且我对两个数据库都拥有完全权限,那么如何同时连接到两个数据库。所以我有DB-1和DB-2。在这种情况下,我想让以下脚本使用这两个数据库。我目前正在使用require(" db.php");连接到一个数据库,但我想连接到两个数据库。

require("DB-1.php");
$tbl_name="System_Info";
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "SELECT COUNT(a.student_id) 
    FROM DB-1.TableA a
    INNER JOIN DB-2.TableB b ON a.student_id = b.student_id 
    WHERE a.account_status = 'AVTIVE' 
    AND a.semesteer = '6' 
    AND b.assesor_status = 'PENDING'";
$q = mysql_query($sql) or die("Query failed: ".mysql_error());
while ($row = mysql_fetch_array($q))
{
    echo '' . $row[0];
}

这就是它在DB-1上的连接使用 DB-1.PHP

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="DB-1"; // Database name

3 个答案:

答案 0 :(得分:2)

使用MySQLi,您可以将不同的数据库连接存储在不同的变量中。

<?php
$mysqlOne = new mysqli("localhost", "user", "password", "database_1");
echo $mysqlOne->host_info . "\n";

$mysqlTwo= new mysqli("127.0.0.1", "user", "password", "database_2", 3306);
$result = $mysqlTwo->query("SELECT Name FROM City LIMIT 10");

请记住,您还可以使用一个数据库连接,只需更改您在SQL中使用的数据库,例如SELECT * FROM database3.city

请参阅:http://www.php.net/manual/en/mysqli.quickstart.connections.php

答案 1 :(得分:0)

使用mysqli(或PDO)扩展名。 Mysql扩展(没有i)有点过时了,它的用法是不鼓励的。使用mysqli,您可以轻松地创建和处理与DB的多个(不同)连接。

请参阅:http://www.php.net/manual/en/mysqli.quickstart.connections.php

答案 2 :(得分:0)

我还建议您使用mysqli或PDO连接mysql,因为在PHP5.5中不推荐使用mysql扩展。

此外如果您不想移动并想要运行当前代码,那么这就是解决方案:

1)。首先删除mysql_select_db(&#34; $ db_name&#34;)或死掉(&#34;不能选择DB&#34;); 2)。并使用表名及其各自的数据库名称,例如DBName.TableName

它应该有用!