gpt4 book ai didi

php - 如何使用php将所有表从一个数据库复制到另一个数据库?

转载 作者:行者123 更新时间:2023-12-02 09:47:09 28 4
gpt4 key购买 nike

我需要以编程方式将表的所有值从一个数据库复制到另一个数据库。我非常喜欢使用 php。我如何实现这一目标?

我找到了一个特定的代码:

$sql1 = "DELETE FROM Kunthanahali.justshawarma_aauth_groups;";
$result1 = $conn->query($sql1);

$sql2 = "INSERT INTO Kunthanahali.justshawarma_aauth_groups SELECT * FROM justshawarmapos.justshawarma_aauth_groups;";
$result2 = $conn->query($sql2);

这段代码工作正常。但问题是我的数据库中有大约 50 个表。有没有办法截断第二个数据库并创建表并从第一个数据库复制值?

我知道 phpmyadmin 中有一个选项。但我想以编程方式做到这一点。
我想实现这一点,因为我正在创建一个销售点系统,其中销售点系统存在于本地主机中,并且在网站上在线查看分析。我需要定期将表及其数据复制到在线数据库。

最佳答案

您可以使用以下代码实现此目的 -

 <?php
$dblink1=mysql_connect('$ip1', '$user1', '$pass1'); // connect server 1

mysql_select_db('$database1',$dblink1); // select database 1

$dblink2=mysql_connect('$ip2', '$user2', '$pass2'); // connect server 2

mysql_select_db('$database2',$dblink2); // select database 2

$tables = mysql_fetch_array(mysql_query("SHOW TABLES ",$dblink1));

//$table='tabletest';

foreach($tables as $table){

$tableinfo = mysql_fetch_array(mysql_query("SHOW CREATE TABLE $table ",$dblink1)); // get structure from table on server 1

mysql_query(" $tableinfo[1] ",$dblink2); // use found structure to make table on server 2

$result = mysql_query("SELECT * FROM $table ",$dblink1); // select all content

while ($row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
mysql_query("INSERT INTO $table (".implode(", ",array_keys($row)).") VALUES ('".implode("', '",array_values($row))."')",$dblink2); // insert one row into new table
}

}

mysql_close($dblink1);
mysql_close($dblink2);

以下是 mysqli 版本 -
<?php
$dblink1=mysqli_connect('127.0.0.1', 'root', ''); // connect server 1

mysqli_select_db($dblink1,'pdb1'); // select database 1

$dblink2=mysqli_connect('127.0.0.1', 'root', ''); // connect server 2

mysqli_select_db($dblink2,'pdb4'); // select database 2

$tables = mysqli_fetch_array(mysqli_query($dblink1,"SHOW TABLES "));

//$table='tabletest';

foreach($tables as $table){

$tableinfo = mysqli_fetch_array(mysqli_query($dblink1,"SHOW CREATE TABLE $table ")); // get structure from table on server 1

mysqli_query($dblink2," $tableinfo[1] "); // use found structure to make table on server 2

$result = mysqli_query($dblink1,"SELECT * FROM $table "); // select all content

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) {
mysqli_query($dblink2,"INSERT INTO $table (".implode(", ",array_keys($row)).") VALUES ('".implode("', '",array_values($row))."')"); // insert one row into new table
}

}

mysqli_close($dblink1);
mysqli_close($dblink2);

关于php - 如何使用php将所有表从一个数据库复制到另一个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50649207/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com