检查数据是否在桌面上

时间:2011-06-08 14:10:40

标签: php sql

我问了一些关于in_array()的事情,我已经开始工作了。但现在我有一个不同的问题:

我有一个表,说明哪些服务分配给主机:services_hosts(service_id,host_id)。

如何查看所选服务是否已分配给该主机,是否也已选中?基本上,我想查看该表中是否已存在特定行(service_id,host_id)。

编辑: 问题是我想在一个单独的文件中进行比较,该文件具有连接到DB的函数:

    function addServiceToHost($service_name, $host_id)
{
$query = "INSERT INTO monitoring_hosts_services (service_id, host_id) values ((SELECT service_id FROM monitoring_services WHERE name = '".$service_name."'), '".$host_id."')";
$result = @pg_exec($this->conn, $query);
    if ($row = pg_fetch_row($result))
    {
    "blabla error msg"
    exit;
    }
    return $this->parseResultObj($result);
}

4 个答案:

答案 0 :(得分:1)

我可能无法正确理解你的问题,但是这会解决问题:

SELECT * FROM ServerHostsTable WHERE service_id = '5' AND host_id = '8'

答案 1 :(得分:0)

$query = ("SELECT * FROM ServerHostsTable WHERE service_id = '5' AND host_id = '8'")

if(mysql_num_rows($query)>0)
{
     //the item is in the db
}
else
{
     //not in the db
}

希望这会有所帮助

答案 2 :(得分:0)

你的问题不是很清楚,但根据我的理解,你想测试一个特定的行是否插入到数据库表中。你可以这样做:

$result=mysql_query("SELECT service_id FROM services_hosts WHERE service_id=$theserviceid AND host=$thehostid");
if($row=mysql_fetch_row($result){
 echo "already in the db";
} else {
 echo "not in the db!";
}

答案 3 :(得分:0)

我会运行此查询。

$sql = "SELECT COUNT(*) AS ret\n";
$sql.= "FROM services_hosts\n";
$sql.= "WHERE service_id = $service_id\n";
$sql.= "AND host_id = $host_id";

结果应该是一行有一个字段(名为ret):

  • 0 - 主机上没有该服务
  • 1 - 主机上有服务
  • enything else - 数据库中的表存在问题