Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql从用户输入动态选择查询_Php_Mysql_Sql_Pdo - Fatal编程技术网

php mysql从用户输入动态选择查询

php mysql从用户输入动态选择查询,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有一个带有复选框和输入字段的表单。用户可以选择或输入一些内容,然后生成查询。现在,当用户只选择一个复选框时,查询工作正常,但当选择两个复选框时,返回的计数为零。 这是查询返回的结果: 选择nbs\u contact\u events.contact\u id、nbs\u contacts.nbs\u contact\u id、nbs\u contacts.nbs\u contact\u sur 来自nbs_联系人 在nbs\U联系人\U事件上左键加入nbs\U联系人\U事件。联系人\U id=

我有一个带有复选框和输入字段的表单。用户可以选择或输入一些内容,然后生成查询。现在,当用户只选择一个复选框时,查询工作正常,但当选择两个复选框时,返回的计数为零。 这是查询返回的结果:

选择nbs\u contact\u events.contact\u id、nbs\u contacts.nbs\u contact\u id、nbs\u contacts.nbs\u contact\u sur
来自nbs_联系人
在nbs\U联系人\U事件上左键加入nbs\U联系人\U事件。联系人\U id=nbs\U联系人。nbs\U联系人\U id
其中,nbs_contact_events.event_id=1
和nbs_联系人_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;
        }
查询有什么问题,为什么不返回任何内容?我知道ID1和ID21在数据库中(如果我分别选择它们,它会工作)


谢谢

应该是
而不是
仅在
事件id
同时为1
2时才会返回某些内容<如果
event\u id
为1或event\u id为2,则code>或返回某些内容

选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21

它应该是
,而不是
仅在
事件id
同时为1
2时才会返回某些内容<如果
event\u id
为1或event\u id为2,则code>或返回某些内容

选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21

它应该是
,而不是
仅在
事件id
同时为1
2时才会返回某些内容<如果
event\u id
为1或event\u id为2,则code>或返回某些内容

选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21

它应该是
,而不是
仅在
事件id
同时为1
2时才会返回某些内容<如果
event\u id
为1或event\u id为2,则code>或返回某些内容

选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21

使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。