查询MySQL以连接2个数据库

时间:2011-05-12 14:31:54

标签: mysql

我有两个表:一个是hostgroup_host,另一个是hostgroups。 hostgroups代表所有主机组的名称,并具有3个重要值(hostgroup_id,name和别名)。 hostgroup_host在组和主机之间建立连接,并具有两个值(hostgroup_id和host_id)。 例: hostgroup_id = 1host_id = 3这意味着ID为3的主机属于具有id = 1(具有特定名称)的主机组。

我有这个:

$名称= $ _ POST [ '名称']; $别名= $ _ POST [ '别名']; $地址= $ _ POST [ '地址']; $主机组= $ _ POST [ '主机组'];

mysql_connect('localhost:/usr/local/groundwork/mysql/tmp/mysql.sock',$ username,$ password); @mysql_select_db($ database)或die(“无法选择数据库”);

$ query =“INSERT INTO hosts(host_id,name,alias,address,hosttemplate_id)VALUES('','$ name','$ alias','$ address','1'); INSERT INTO hostgroup_host(hostgroup_id,host_id)VALUES((从hostgroups中选择hostgroup_id,其中name ='$ hostgroup'),(SELECT 来自主机的host_id,其中name ='$ name'))“; 的mysql_query($查询);

mysql_close(); ?>

为什么不起作用?

3 个答案:

答案 0 :(得分:0)

我有点困惑,但只使用多个链接资源。

$linka = mysql_connect('server1', 'mysql_user', 'mysql_password');
$linkb = mysql_connect('server2', 'mysql_user', 'mysql_password');

然后使用

$result = mysql_query('INSERT...', $linka);

$result = mysql_query('INSERT...', $linka);

但我担心我可能完全误解了你的问题......

答案 1 :(得分:0)

好吧,只需加入你的插入语句: 类似的东西:

INSERT INTO TABLE_A (id,name,alias);
INSERT INTO TABLE_B (id,name);

;在mysql中分离命令, 所以基本上当你运行查询时,两个insert语句都会运行。

答案 2 :(得分:0)

我是否遗漏了某些东西,或者不会将hostgroup_id和host_id作为下拉列表中的选项值更好?

<select name="hosts">
  <option value="1">Host 1</option>
  ...
</select>

<select name="hostgroups">
  <option value="15">Host with 15 as ID</option>
  ...
</select>

然后只插入帖子值