PHP同步MySQL两个数据库中表的数据

示例为两个表(数据结构相同)并在不同的服务器中,就算在同一服务器中,两者的方式基本一致

第一步:

创建公共方法建立与另一个数据表的连接操作( 这里采用 PDO 的方式连接 )

db:原库

dbs:第二个数据库

//第二个数据库执行同步操作
function dbs()
{
    //创建第二个数据库连接操作,进行数据同步
   return new DB([
        'dbtype' => 'mysql',
        'host' => '127.0.0.1',
        'database' => 'xian',
        'name' => 'root',
        'password' => 'eoner.com',
    ]);
}

第二步:

清空原表中的数据,方便第二个数据表的数据可以顺利同步

truncate 的清空方式速度快,并且会重置自增 ID 字段

//使用sql语句清空数据表
$db->query('truncate xian');

第三步:

查询出所需同步的数据,并进行数据重组

//查询出所同步的数据
$data = dbs()->select('xian');

//执行循环将数据同步进去
foreach($data as $key => $val){
    $dataTo[] = [
        $val['id'],
        $val['name'],
        $val['state'],
    ]
}

//数据循环,并进行重组方便组装 SQL 语句
foreach ($dataTo as $key => $val) {
    $sql .= "('" . implode("','", $val) . "')" . ",";
}
$sql = substr($sql, 0, - 1);

第四步:

书写SQL语句并进行拼接操作,将数据添加到原表中

//书写 SQL 语句执行操作
$sqls = "INSERT INTO `xian` (`id`,`name`,`state`) VALUES " . $sql;

//执行 SQL 语句
$db->query($sqls);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值