2011-05-12 160 views
1

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

我有这个:

$ name = $ _ POST ['name']; $ alias = $ _ POST ['alias']; $ address = $ _ POST ['address']; $ hostgroup = $ _ POST ['hostgroup']; mysql_connect('localhost:/usr/local/groundwork/mysql/tmp/mysql.sock',$ username,$ password); @mysql_select_db($ database)或die(“无法选择数据库”); ('','$ name','$ alias','$ address','1'); INSERT INTO(host_id,name,alias,address,hosttemplate_id) hostgroup_host(hostgroup_id,host_id)VALUES((从主机组中选择hostgroups的hostgroup_id,其中name ='$ hostgroup'),(SELECT host-主机的名称='$ name'))“; mysql_query($ query);

mysql_close(); ?>

为什么不工作?

+0

究竟是什么不起作用?你得到的错误是什么? – khany 2011-05-12 15:31:27

回答

0

很好,刚刚加入你的INSERT语句: 例如:

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

the;在我的sql, 中分离命令是非常基本的,当你运行查询时,两个插入语句都将运行。

+0

[mysql_query](http://php.net/manual/en/function.mysql-query。php)只会执行1个查询(不支持多个查询),所以你必须在一个单独的调用中执行每个查询。 – wimvds 2011-05-12 14:44:47

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); 

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

+0

严重想象一个页面添加一个主机:我有3个文本框(名称,别名和地址)和一个下拉菜单列出所有可用的组(主机被添加将属于其中一个组)。提交后,我有另一个PHP文件,使所有这些行动。我只想知道如何在下拉菜单(组名)上选择与该名称关联的hostgroup_id,并插入与主机ID关联的hostgroup_host。 – aocferreira 2011-05-12 14:43:10

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> 

然后只需插入后值