我有一个带有复选框、输入字段的表单。用户可以选择或输入某些内容,并以此构建查询。Now when the user selects only one checkbox, the query works perfect, but when selecting 2 checkboxes, I get a count of zero in return. 这是查询返回的内容:
SELECT nbs_contact_events.contact_id, nbs_contacts.nbs_contact_id, nbs_contacts.nbs_contact_sur
FROM nbs_contacts
LEFT JOIN nbs_contact_events ON nbs_contact_events.contact_id = nbs_contacts.nbs_contact_id
WHERE nbs_contact_events.event_id = 1
AND nbs_contact_events.event_id = 21
返回计数:0
进行该选择的 php (pdo) 代码如下:
$this->pdo = $this->connectMySql();
$query = "SELECT nbs_contact_events.contact_id, nbs_contacts.nbs_contact_id, nbs_contacts.nbs_contact_sur
FROM
nbs_contacts
LEFT JOIN
nbs_contact_events
ON
nbs_contact_events.contact_id = nbs_contacts.nbs_contact_id";
if(isset($eventlist) || isset($nbslist) || isset($nbs_relativeto)){
$query .= " WHERE ";
if(isset($eventlist)){
$source = array_filter($eventlist);
$conditions = array();
foreach($source as $field => $value){
$conditions[] = "nbs_contact_events.event_id = " . mysql_real_escape_string($value);
//$conditions[] = "event_id = :event_id";
}
$where = implode(" AND ", $conditions);
$query .= $where;
}
}
$stmt = $this->pdo->prepare($query);
print_r($query);
if(!$stmt->execute($conditions)){
return false;
}
$nart = $stmt->rowCount();
echo "returned count: " . $nart;
if ($nart == 0) {
return false;
}
查询有什么问题,为什么不返回任何内容?我知道 ID 1 和 21 在数据库中(如果我单独选择它们,它可以工作)。
谢谢