【问题标题】:Connect to two databases on the same host at the same time同时连接同一主机上的两个数据库
【发布时间】:2014-04-21 22:29:26
【问题描述】:

如果两个数据库位于同一主机上并且我对两个数据库都拥有完全权限,我如何同时连接到两个数据库。所以我有 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

【问题讨论】:

  • 首先您不应该使用mysql_ 函数,因为它们已被弃用。其次,您可以根据需要连接到任意数量的数据库,您只需指定要将查询发送到哪个连接,您可以使用 mysql mysqliPDO 来做到这一点。

标签: php mysql


【解决方案1】:

使用 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

【讨论】:

    【解决方案2】:

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

    见:http://www.php.net/manual/en/mysqli.quickstart.connections.php

    【讨论】:

      【解决方案3】:

      我还建议你使用 mysqli 或 PDO 来连接 mysql,因为 mysql 扩展在 PHP5.5 中已被弃用。

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

      1)。首先删除 mysql_select_db("$db_name") 或 die("cannot select DB"); 2)。并使用带有各自数据库名称的表名,例如DBName.TableName

      应该可以了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        相关资源
        最近更新 更多