Я пытаюсь отправить таблицу базы данных с одного сервера на другую таблицу базы данных на другом сервере. Вот код PHP, который я пробовал до сих пор, но безрезультатно:

<?php
$dblink1=mysql_connect('server', 'user', 'pass'); // connect server 1
mysql_select_db('db1_name',$dblink1);  // select database 1

$dblink1=mysql_connect('server', 'user', 'pass'); // connect server 2   
mysql_select_db('db2_name',$dblink2); // select database 2

$table='output_table';#not sure if this is correct

$tableinfo = mysql_fetch_array(mysql_query("SHOW CREATE TABLE first_table     ",$dblink1)); // get structure from table on server 1
echo $tableinfo;

mysql_query(" $tableinfo[1] ",$dblink2); // use found structure to make table on server 2

$result = mysql_query("SELECT * FROM first_table  ",$dblink1); // select all content        
while ($row = mysql_fetch_array($result, MYSQL_ASSOC) ) {       
       mysql_query("INSERT INTO output_table (".implode(", ",array_keys($row)).") VALUES       ('".implode("', '",array_values($row))."')",$dblink2); // insert one row into new table
}

mysql_close($dblink1); 
mysql_close($dblink2);
echo "complete";
?>

Я пробовал output_table с теми же именами / количеством столбцов, что и first_table, и без них, но, похоже, он не работает.

Опять же, любая помощь будет оценена.

0
user3608266 28 Авг 2014 в 14:05

2 ответа

Лучший ответ

Проблема может заключаться в том, что $dblink2 не определено.

$dblink2=mysql_connect('server', 'user', 'pass'); // connect server 2   
mysql_select_db('db2_name',$dblink2); // select database 2

Также рассмотрите возможность использования вместо них методов pdo , поскольку методы mysql- теперь менее предпочтительны по сравнению с методом PDO для работы с объектами базы данных.

0
Peter 28 Авг 2014 в 10:12

Скорее всего, это проблема с брандмауэром. Большинство сторонних хостов не позволяют вам получить доступ к MySQL «извне».

Вы можете сделать это, если вы сами управляете сервером MySQL или у вас есть хост, который не запрещает вам доступ к базе данных с другого компьютера, но на обычном веб-хостинге это нечасто.

O в вашу установку phpMyAdmin и найдите файл config.inc.php. Откройте этот файл и проверьте, какое имя хоста / ip используется.

0
Othman Mahmoud 28 Авг 2014 в 10:16