php和mysql不在同一服务器上_我可以在两台使用PHP的不同服务器上使用MySql Create Select吗?...

这篇博客探讨了如何在两个不同服务器上的MySQL数据库之间使用PHP进行操作,包括删除表、创建表以及从主服务器选择数据填充新表。作者遇到的问题在于在一个SQL语句中同时涉及两个服务器的连接,导致CREATE TABLE SELECT操作失败。
摘要由CSDN通过智能技术生成

我试图在两个不同的

MySQL服务器之间使用

PHP和MySQL的Create Table Select.我不确定这可以用SQL做到这一点.我没有错,但我也没有做任何事:

$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
";

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

mysql_query($sql, $db1);

echo "Table: {$row[0]} created
";

}

echo "
done...";

mysql_free_result($result);

?>

那条线:

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

只是不起作用. $db2不会让它转到其他服务器并选择.

从做了一些关于SO的阅读我发现有人类似,有人说它无法完成并查看联合表,这对我不起作用.

如果上面不能做到这一点有没有人知道我正在做的事情的方法?我正在删除副本上的表并根据主服务器中的表重新创建它们.然后我选择master中的数据放入重新创建的表中.谢谢

更新:

这样我就可以清楚了.如果所有内容都在同一台服务器上并且我只有一个数据库连接,则代码可以工作.我相信是因为创建表选择我有问题.此SQL需要同时使用两个服务器. create table用于一个刚刚删除它的表的数据库,但select是从第二个连接的数据库中选择的 – 同一个SQL语句中的两个连接.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值