php mysql 数据迁移指南:建立到源和目标数据库的连接。从源数据库提取数据。在目标数据库中创建匹配源表的结构。使用逐行插入逐行将数据从源数据库迁移到目标数据库。
如何使用 PHP 进行 MySQL 数据迁移
简介
数据迁移是将数据从一个系统转移到另一个系统的重要任务。在开发应用程序时,经常需要从测试环境将数据迁移到生产环境。本文将指导你如何使用 PHP 进行 MySQL 数据迁移。
步骤
1. 建立连接
首先,你需要连接到源数据库和目标数据库:
$sourceConn = new mysqli("localhost", "sourceuser", "sourcepass", "sourcedb"); $targetConn = new mysqli("localhost", "targetuser", "targetpass", "targetdb");
2. 获取源数据
使用 mysqli_query() 从源数据库获取需要迁移的数据:
$result = $sourceConn->query("SELECT * FROM `source_table`");
3. 准备目标表
在目标数据库中,创建目标表并匹配源表的结构:
$targetConn->query("CREATE TABLE IF NOT EXISTS `target_table` LIKE `source_table`");
4. 逐行插入数据
循环遍历源查询结果,并逐行将数据插入到目标表中:
while ($row = $result->fetch_assoc()) { $insertQuery = "INSERT INTO `target_table` SET "; foreach ($row as $field => $value) { $insertQuery .= "`$field` = '$value', "; } $insertQuery = substr($insertQuery, 0, -2); $targetConn->query($insertQuery); }
实战案例
例如,要将 users 表从 development 数据库迁移到 production 数据库,你可以运行以下 PHP 代码:
$sourceConn = new mysqli("localhost", "devuser", "devpass", "development"); $targetConn = new mysqli("localhost", "produser", "prodpass", "production"); $result = $sourceConn->query("SELECT * FROM `users`"); $targetConn->query("CREATE TABLE IF NOT EXISTS `users` LIKE `users`"); while ($row = $result->fetch_assoc()) { $insertQuery = "INSERT INTO `users` SET `id` = '{$row['id']}', `name` = '{$row['name']}', `email` = '{$row['email']}'"; $targetConn->query($insertQuery); }