0
mysql_connect("localhost","root","");
mysql_select_db("database1");
mysql_query("INSERT INTO database2.categories (category_name,description,group_id,created)
  SELECT table1.name, table1.description, 12, UNIX_TIMESTAMP()
  FROM GiveArang_categories Where `p_id`= '225' ");

我需要将数据插入到从第一个数据库中选择的第二个数据库中。两个数据库有不同的连接。它需要在 php 中在单个查询中完成。

4

4 回答 4

1

这样做的唯一方法(据我所知)是通过两个单独的连接。

像这样的东西:

mysql_connect("localhost","root","");
mysql_select_db("database2");
mysql_query("INSERT INTO database2.categories (category_name,description,group_id,created)");
mysql_close();

mysql_connect("localhost","root","");
mysql_select_db("database1");
mysql_query("SELECT table1.name, table1.description, 12, UNIX_TIMESTAMP() FROM GiveArang_categories Where `p_id`= '225' ");
mysql_close();
于 2012-07-07T11:48:24.927 回答
0

不幸的是,在 MySql 中没有等效的 Oracle dblink(这是您在 Oracle 数据库中的单个查询中连接到另一个数据库所需的)。

另请参阅以获取更多信息。

于 2012-07-07T11:34:41.017 回答
0

您可以弹出一个MySQL 代理来坐在您的服务器和数据库框之间,这将允许您将它们视为在同一台服务器上。然后,您可以databasename.tablename在查询中使用通过相同的连接来识别不同的数据库。

于 2012-07-07T11:35:49.473 回答
0

如果两个数据库都在同一个 mysql-server 上,你可以这样记:

mysql_connect("localhost","root","");
mysql_query("INSERT INTO database2.categories (category_name,description,group_id,created)
  SELECT database1.table1.name, database1.table1.description, 12, UNIX_TIMESTAMP()
  FROM database1.GiveArang_categories Where database1.GiveArang_categories.p_id= '225' ");
于 2017-07-22T11:24:15.257 回答