将数据库复制到服务器上的另一个数据库


Copy database to another database on server

>我有一个问题。我不太擅长这个。:)假设这是数据库anna_subscribers,每次调用此.php文件到数据库anna_newsletter时,我都想复制此数据库。如何编辑此代码,使其不会下载文件,而是将数据库复制到此服务器上的另一个数据库?这是执行下载的此文件的代码:

<?
require_once('../../../../../initialize.php');
if(!$session->isLogedIn()) {
exit;
}
ini_set('memory_limit','16M');
$q=$db->get($db->query('SELECT sqlUrl, sqlDatabase, sqlUserName, sqlPassword, ID, importShopID, lastOrderUpdate FROM com_som_shops WHERE ID="3"'));
$dbhandle = new Database(false);
$dbhandle->open_connection(''.$q['sqlUrl'].'', ''.$crypt->decrypt($q['sqlUserName']).'', ''.$crypt->decrypt($q['sqlPassword']).'', ''.$crypt->decrypt($q['sqlDatabase']).'');   
$dbhandle->query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
$db_un_chQ = $dbhandle->query("SELECT * FROM newsletter_subscriber WHERE subscriber_status='1' AND store_id='3' AND customer_id='0'");
$string="";
while($db_un_chR=$dbhandle->fetch($db_un_chQ)) {
    $string.= $db_un_chR["subscriber_email"].",'n";
}
$dbhandle->close_connection();
header("Content-Type: text/plain; charset=utf-8");
header('Content-Disposition: attachment; filename="exportSubscrtiptionKondomanija_'.date("d.m.Y-H.i").'.txt"');
echo $string;
?>

我用这样的东西改变 ti 吗:

INSERT INTO anna_newsletter..subscribers
SELECT * FROM anna_subscribers..subscribers

数据库结构: anna_subscribers具有:

`ID``email``date_added`

数据库结构:anna_newsletter具有:

`id``userID``email``custom_fields``list``unsubscribed``bounced``bounce_soft``complaint``l‌​ast_campaing``last_ares``timestamp``join_date``confirmed``messageID`

只需在查询中指定数据库:

 INSERT INTO DESINATION_DATABASE.subscribers SELECT * FROM SOURCE_DATABASE.subscribers 
你可以

喜欢这样:

<?php
$dblink1=mysql_connect('$ip1', '$user1', '$pass1'); // connect server 1
mysql_select_db('$database1',$dblink1);  // select database 1
$dblink1=mysql_connect('$ip2', '$user2', '$pass2'); // connect server 2 
mysql_select_db('$database2',$dblink2); // select database 2
$table='tabletest';
$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);
 ?>
相关文章: