MySQL同时连接到多个数据库

时间:2019-01-20 06:43:19

标签: php mysql

我的本​​地主机上有多个使用相同用户名和密码的数据库。由于信息存储在不同的数据库中,因此我需要跨数据库工作,因此需要同时打开两者。我将数据插入一个数据库,并希望删除另一个数据库中的表以及数据。

这是我目前正在尝试的联系方式。

$host = "localhost"; // Host name 
$username = "root"; // Mysql username 
$password = "@"; // Mysql password 
$db_name = "etrack"; // Database 1
$db_name2 = "gs"; // Database 2

// Create connection
$conn = new mysqli($host, $username, $password, $db_name);
$conn2 = new mysqli($host, $username, $password, $db_name2);
// Check connection
if ($conn2->connect_error) {
    die("Connection failed: " . $conn2->connect_error);

}

然后我运行一些sql字符串,例如:

$sql = "INSERT INTO unit_hx SET
                imei = '".$imei."',
                model = '".$model."',
                supp = '".$supp."',
                status = 'Scrapped',
                installer = '".$installer."',
                unit_nr = '".$unit_nr."',
                cost = '".$cost."',
                systime = '".$time."',
                msisdn = '".$msisdn."',
                sysdate = '".$date."',
                notes = '".$notes."',
                staff = '".$agent."'";

我想基于数据库etrack中检索到的imei信息在数据库gs中删除表

DROP TABLE 'gs_object_data_'".$imei."' 
//imei information is set on the page from a previous form using $_POST

是否可以使用DB1中的信息在DB2查询和删除DB2表中使用?

编辑后的工作代码: 要在两个不同的数据库中插入或更新信息,以下代码很有用;

    "INSERT INTO etrack.simcard_hx SET" //etrack is the database name simcard_hx is the table name
Changing database to other database I used 
"INSERT INTO gs.simcard_hx SET" // gs being the second database

1 个答案:

答案 0 :(得分:1)

您的root用户应该可以访问两个数据库,因此您不需要第二个连接。如果没有,创建一个可以做到的用户,它将简化您的生活。然后,在查询中,您只需在表名前面加上数据库名称即可:例如

SELECT * 
FROM etrack.table1 t1
JOIN gs.table2 t2 ON t2.etrack_id = t1.id