Могу ли я использовать MySql Create Select на двух разных серверах с PHP?

Я пытаюсь использовать PHP и MySQL Create Table Select между двумя разными серверами MySQL. Я не уверен, что это можно сделать с помощью SQL. Я не получаю ошибок, но и ничего не делаю:

<?php
$dbname = 'cms';
$dbmaster = 'cmsms';

$db1 = mysql_connect('localhost', 'root', 'secret');
if (!$db1) {
    echo 'Could not connect to mysql';
    exit;
}

$db2 = mysql_connect('server2', 'root', 'secret');
if (!$db2) {
    echo 'Could not connect to mysql';
    exit;
}

mysql_select_db("$dbname", $db1) or die ("Unable to select database");
mysql_select_db("$dbmaster", $db2) or die ("Unable to select database");

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql, $db1);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    $sql = "DROP TABLE `$row[0]`";
    mysql_query($sql, $db1);
    echo "Table rows: {$row[0]} Deleted <br/>";
    $sql = "CREATE TABLE $row[0] SELECT * FROM $db2.$dbmaster.$row[0] ";
    mysql_query($sql, $db1);
    echo "Table: {$row[0]} created <br/>";

}
echo "<br/>done...";

mysql_free_result($result);
?>

Эта строка:

$sql = "CREATE TABLE $row[0] SELECT * FROM $db2.$dbmaster.$row[0] ";

просто не работает. $ db2 не заставляет его перейти на другой сервер и выбрать.

Прочитав SO, я нашел кого-то похожего, и кто-то сказал, что это невозможно, и посмотреть на объединенные таблицы, которые у меня не сработают.

Если это невозможно сделать выше, знает ли кто-нибудь способ делать то, что я делаю? Я отбрасываю таблицы на копию и воссоздаю их на основе таблицы в мастере. Затем я выбираю данные в мастере, чтобы поместить их в воссозданные таблицы. Спасибо

Обновление: Просто чтобы я был ясен. Код работает, если все было на одном сервере и у меня было только одно соединение с базой данных. Проблемы возникают из-за create table select , я полагаю . Этот SQL должен использовать два сервера одновременно. Таблица создания предназначена для одной базы данных, которая только что отбросила свои таблицы, но при выборе выбирается из базы данных второго соединения - двух соединений в одном операторе SQL.

5
задан johnny 22 October 2010 в 14:38
поделиться