一次匯入到兩個數據庫

$servername = "localhost";
$username = "root";
$password = "xxx";
$mysqldb = "數據庫1";

$db1 = new mysqli($servername, $username, $password, $mysqldb);

假設我想再加一個連線是連到不一樣的數據庫呢?
我兩個數據庫的資料表都是一樣的結構
可以用代碼一次匯入兩個數據庫

  $db1->query(
    "INSERT INTO `ccc` (name)
    VALUES
    ('".$name."') "
  );

能怎做呢?

阅读 2.4k
3 个回答

我来给你个做代码封装的思路:
代码可能如下,建议根据具体情况修改。

$servername = "localhost";
$username = "root";
$password = "xxx";
$mysqldb = "數據庫1";
$dbConfig = [
    [
    'servername' => 'localhost',
    'username' => 'root',
    'password' => 'xxx',
    'mysqldb' => 'db1'],
    [
    'servername' => 'localhost',
    'username' => 'root',
    'password' => 'xxx',
    'mysqldb' => 'db2'],
];
$connects = [];
foreach($dbConfig as $config) {
    $connects[] = new mysqli(
        $config['servername'], 
        $config['username'], 
        $config['password'], 
        $config['mysqldb']
        );
}
function query($query_sql) {
    foreach($connects as $connect) {
        $connect->query($query_sql);
    }
}

query("INSERT INTO `ccc` (name)
        VALUES
        ('".$name."') ");

可以主从同步。对主库写即可。其他的通过同步机制同步到另外一台

如果你的两个库在同一mysql实例中,直接跨库操作即可

INSERT INTO db1.table1_name (field1,field2) SELECT field1,field2 FROM db2.table2_name
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题