我的本地主机上有多个数据库,使用相同的用户名和密码。由于信息存储在不同的数据库中,并且我需要跨数据库工作,因此我需要同时打开这两个数据库。我将数据插入一个数据库,并希望删除另一个数据库中的表和数据。
这是我当前正在尝试的连接。
$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
最佳答案
您的 root
用户应该有权访问这两个数据库,因此您不需要第二个连接。如果没有,请创建一个有此功能的用户,这将简化您的生活。然后,在查询中,您只需在表名称前加上数据库名称即可:例如
SELECT *
FROM etrack.table1 t1
JOIN gs.table2 t2 ON t2.etrack_id = t1.id
关于php - MySQL同时连接多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54274213/