caipiao: 数据从一个数据库转移到另一个数据库(新旧数据库:表的结构不同;PHP)

发布时间 2023-11-19 01:26:45作者: lnlidawei

caipiao:  数据从一个数据库转移到另一个数据库(新旧数据库:表的结构不同;PHP)

 

 

 

 

一、php源代码

  1 [wit@fedora dlt]$ cat  dltlibs_backup.php 
  2 #!/usr/bin/env php
  3 
  4 
  5 <?php
  6 
  7 
  8 
  9 
 10 // insert49() - insert $dlt_data to $dlt_tbl; 49 - 49 items.
 11 function insert49($tbl_name, $data)
 12 {
 13 
 14         // $sql = "insert into $tbl_name(uid, udate, f$data[2], f$data[3], f$data[4], f$data[5], f$data[6], b$data[7], b$data[8]) 
 15         //      values($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7], $data[8])";
 16 
 17         $sql = "insert into $tbl_name(uid, udate, f$data[2], f$data[3], f$data[4], f$data[5], f$data[6], b$data[7], b$data[8]) values($data[0], \"$data[1]\", $data[2], $data[3], $data[4], $data[5], $data[6], $data[7], $data[8])";
 18 
 19         /*
 20         echo "\n\n";
 21         echo $sql;
 22         echo "\n\n";
 23         */
 24 
 25         return $sql;
 26 }
 27 
 28 
 29 
 30 
 31 // insert9() - insert $dlt_data to $dlt_tbl; 9 - 9 items.
 32 function insert9($tbl_name, $data)
 33 {
 34 
 35         $sql = "insert into $tbl_name values($data[0], \"$data[1]\", $data[2], $data[3], $data[4], $data[5], $data[6], $data[7], $data[8])";
 36 
 37         /*
 38         echo "\n\n";
 39         echo $sql;
 40         echo "\n\n";
 41         */
 42 
 43         return $sql;
 44 
 45 }
 46 
 47 
 48 // test insert()
 49 
 50 /*
 51 $tbl_name = "dlt2023";
 52 $data = array("2023001", "2023-01-02", 18, 19, 24, 27, 34, 02, 07);
 53 
 54 insert49($tbl_name, $data);
 55 insert9($tbl_name, $data);
 56 */
 57 
 58 
 59 
 60 
 61 
 62 // db1todb2() - insert data  from db1  to db2. 
 63 // db1todb2() - data from db1 insert to db2.
 64 // db1todb2() - db1 to db2.
 65 
 66 function db1todb2($tb1, $tb2)
 67 {
 68 
 69         $server1 = "server1_ip"; // your server ip
 70         $user1 = "user1";       // your user name
 71         $passwd1 = "mima1";     // your database password
 72         $db1 = "db1";   // your database name
 73 
 74 
 75         $server2 = "server2_ip"; // your server ip
 76         $user2 = "user2";       // your user name
 77         $passwd2 = "mima2";     // your database password
 78         $db2 = "db2";   // your database name
 79 
 80 
 81         try {
 82 
 83                 $conn1 = new PDO("mysql:host=$server1;dbname=$db1", $user1, $passwd1 );
 84                 $conn2 = new PDO("mysql:host=$server2;dbname=$db2", $user2, $passwd2 );
 85 
 86 
 87                 $conn1 -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 88                 $conn2 -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 89 
 90 
 91                 $conn2 ->query("truncate table $tb2");
 92                 $tb2_name = "dlt2023";
 93                 $icount = 0;
 94                 foreach( $conn1->query("select * from $tb1") as $row){
 95                         // $sql2 = insert49($tb2_name, $row);
 96                         $sql2 = insert49($tb2, $row);
 97                         echo "\nline_$icount: " .$sql2. "\n";
 98                         $conn2 -> query($sql2);
 99                         $icount = $icount + 1;
100                 }
101 
102 
103 
104                 $conn2 = null;
105                 $conn1 = null;
106 
107         } catch(PDOException $e) {
108                 echo "ERROR: ". $e -> getMessage();
109         }
110 
111 }
112 
113 
114 // test db1todb2($tb1, $tb2)
115 $tb1="dlt";
116 $tb2="dlt";
117 db1todb2($tb1, $tb2);
118 
119 
120 
121 
122 
123 ?>
124 [wit@fedora dlt]$ 
125 [wit@fedora dlt]$ 

 

 

 

二、参考文档

 

  1、PHP PDO | 菜鸟教程  https://www.runoob.com/php/php-pdo.html