-
-
Save kharysharpe/11275211 to your computer and use it in GitHub Desktop.
| <?php | |
| /** | |
| * | |
| * Code was adapted from SitePoint | |
| * http://www.sitepoint.com/forums/showthread.php?697857-Copy-mysql-table-from-one-server-to-another-through-php&s=b5b25e09ff44749d2e49e0d7c1640fd8&p=4680578&viewfull=1#post4680578 | |
| * | |
| */ | |
| // Prevent script from timing out | |
| set_time_limit(0); | |
| // Table to be duplicated | |
| $table = 'table_name'; | |
| // Source server of the table to be duplicated | |
| $sourceHost = '127.0.0.1'; | |
| $sourceUser = 'your-username'; | |
| $sourcePassword = 'your-password'; | |
| $sourceDatabase = 'your-db'; | |
| // Destination server to duplicate the table | |
| $destinationHost = '127.0.0.2'; | |
| $destinationUser = 'your-username'; | |
| $destinationPassword = 'your-password'; | |
| $destinationDatabase = 'your-db'; | |
| // Connect to source server | |
| $source = mysql_connect($sourceHost, $sourceUser, $sourcePassword); | |
| mysql_select_db($sourceDatabase, $source); | |
| // Connect to destination server | |
| $destination = mysql_connect($destinationHost, $destinationUser, $destinationPassword); // connect server 2 | |
| mysql_select_db($destinationDatabase, $destination); // select database 2 | |
| // Get the table structure from the source and create it on destination server | |
| $tableInfo = mysql_fetch_array(mysql_query("SHOW CREATE TABLE $table ", $source)); // get structure from table on server 1 | |
| mysql_query(" $tableInfo[1] ", $destination); // use found structure to make table on server 2 | |
| // Copy data from source to destination | |
| $result = mysql_query("SELECT * FROM $table ", $source); // 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)) . "')", $destination); | |
| } | |
| // Close connections | |
| mysql_close($source); | |
| mysql_close($destination); |
Hi im Tryng to use this code for a little project , but it not working
hmm something isn't right.
Can you make an exemple plz?
I updated the code to be easier to reason about and fixed a few issues
Arigato
Hi,
Ran into a problem while copying tables containing reserved names as field names.
Fixed it by adding four back ticks to de destination query:
Changed:
mysql_query("INSERT INTO $table (" . implode(", ", array_keys($row)) . ") VALUES ('" . implode("', '", array_values($row)) . "')", $destination);
To:
mysql_query("INSERT INTO $table (`" . implode("`, `", array_keys($row)) . "`) VALUES ('" . implode("', '", array_values($row)) . "')", $destination);
above program will worked only older version of PHP <5.4
use "mysqli" for latest PHP versions.
can this be updated for new php 7.3
Thanks. Corrected.