如何在两个不同的服务器上连接到多个MySQL数据库

时间:2018-09-27 20:06:14

标签: php mysql

我想连接到我的本地主机数据库(allinone),检索几条记录并将它们发送到服务器上的另一个数据库(imbigass_allinone)。

当我在两个数据库上都执行“ mysql_num_rows”时,这可以正常工作。 (query2)这意味着我可以同时连接到服务器和本地主机上的两个数据库。

但是我不知道的是如何从本地数据库(allinone)中获取任何记录,然后将它们发送到服务器上的数据库(imbigass_allinone)中。

通常我使用PDO,但是我有一个旧的XAMPP版本,它不能处理PDO。

$db_local = mysql_connect("localhost", "imbi", "aaaaaaaaaa", true);
$db_hostpoint = mysql_connect("imbigass.mysql.db.hostpoint.ch", "imbigass_imbi", "xxxxxxxxx", true);
mysql_select_db("allinone", $db_local);
mysql_select_db("imbigass_allinone", $db_hostpoint);

$query1 = mysql_query("SELECT * FROM `filenames`", $db_local); 
$result = mysql_db_query($query1) or die("Error: " . mysql_error());
while ($row = mysql_fetch_assoc($result)) {
    $filename_id = $row['filename_id'];
    $filename_type = $row['filename_type'];
echo "$filename_id | $filename_type <br>";
}

$query2 = mysql_query("SELECT * FROM `filenames`", $db_hostpoint); 
$row_table2 = mysql_num_rows($query2);
echo "Filenames: ".$row_table2." - ".$row_table2."<br>";

PS刚弄清楚如何从我的本地主机数据库中读取数据:

$query1 = mysql_query("SELECT * FROM filenames limit 10", $db_local);
while ($row = mysql_fetch_assoc($query1)) {
    $filename_id = $row['filename_id'];
    $filename_type = $row['filename_type'];
    $filename_filename = $row['filename_filename'];
    echo "$filename_id | $filename_type | $filename_filename <br>";
}

但是插入主机数据库现在不起作用:

$insert2 = mysql_query("INSERT INTO filenames (filename_type, filename_filename) VALUES ('$filename_type', '$filename_filename')", $db_hostpoint);
$result2 = mysql_query($insert2) or die("Error: " . mysql_error());

它只是将第一条记录发送到主机数据库。然后我得到了错误

  

错误:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的'1'附近使用

1 个答案:

答案 0 :(得分:0)

这是连接到两个不同服务器上的多个MySQL数据库的代码。

$db_local = mysql_connect("localhost", "imbi", "aaaaaaaaaaaaaaaaa", true);
$db_hostpoint = mysql_connect("imbigass.mysql.db.hostpoint.ch", "imbigass_imbi", "aaaaaaaaaaaaaaa", true);
mysql_select_db("allinone", $db_local);
mysql_select_db("imbigass_allinone", $db_hostpoint);

$query1 = mysql_query("SELECT * FROM filenames", $db_local); 
while ($row = mysql_fetch_assoc($query1)) {
    $filename_type = $row['filename_type'];
    $filename_filename = $row['filename_filename'];

    echo "$filename_id | $filename_type | $filename_filename <br>";

    $insert2 = mysql_query("INSERT INTO filenames (filename_type, filename_filename) VALUES ('$filename_type', '$filename_filename')", $db_hostpoint);
}