我问了一些关于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);
}
答案 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
):