鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ 一次匯入到兩個(gè)數(shù)據(jù)庫(kù)

一次匯入到兩個(gè)數(shù)據(jù)庫(kù)

$servername = "localhost";
$username = "root";
$password = "xxx";
$mysqldb = "數(shù)據(jù)庫(kù)1";

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

假設(shè)我想再加一個(gè)連線是連到不一樣的數(shù)據(jù)庫(kù)呢?
我兩個(gè)數(shù)據(jù)庫(kù)的資料表都是一樣的結(jié)構(gòu)
可以用代碼一次匯入兩個(gè)數(shù)據(jù)庫(kù)

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

能怎做呢?

回答
編輯回答
莓森

可以主從同步。對(duì)主庫(kù)寫(xiě)即可。其他的通過(guò)同步機(jī)制同步到另外一臺(tái)

2017年8月29日 23:17
編輯回答
舊城人

如果你的兩個(gè)庫(kù)在同一mysql實(shí)例中,直接跨庫(kù)操作即可

INSERT INTO db1.table1_name (field1,field2) SELECT field1,field2 FROM db2.table2_name
2018年9月1日 01:53
編輯回答
鐧簞噯

我來(lái)給你個(gè)做代碼封裝的思路:
代碼可能如下,建議根據(jù)具體情況修改。

$servername = "localhost";
$username = "root";
$password = "xxx";
$mysqldb = "數(shù)據(jù)庫(kù)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."') ");
2018年7月18日 09:31