首页 > 解决方案 > Isset 适用于本地服务器,但不适用于实时服务器

问题描述

我正在使用 Xampp v3.2.2 在我的本地开发网站,我正在运行查询以过滤我的数据,它在我的本地工作正常但是当我上传(在服务器上更新我的代码)时它总是返回 0 值。我的服务器使用原生 php 5.6

我已经用 !empty 代替 isset,但它不起作用。所以这是我的过滤器代码之一:

    $this->_require_login();
    $user = $this->session->userdata('user_id');
    $cust = $this->input->post('cust_name');
    $dtstart = new DateTime($this->input->post('date_start'));
    $dtend = new DateTime($this->input->post('date_end'));
    $start_date = $dtstart->format('Y-m-d ');        
    $end_date = $dtend->format('Y-m-d ');        


    if ((isset($cust) && !empty($cust)) && (isset($start_date) && !empty($start_date)) && (isset($end_date) && !empty($end_date))){

        $this->db->select('t1.cust_name, t1.act_type, t1.act_detail, t1.date_added, t1.date_modified, t1.act_notes')
                ->from('activity as t1')
                ->join('user as t2', 't1.user_id = t2.user_id', 'LEFT')
                ->where('t1.cust_name', $cust)
                ->where('t2.user_id', $user)
                ->where('DATE(t1.date_added) >= ', $start_date)
                ->where('DATE(t1.date_modified) <= ', $end_date);
        $query = $this->db->get();
        $result = $query->result_array();                        

    if ($result) {
        $this->output->set_output(json_encode([
            'result' => 1,
            'data' => $query->result_array()
        ]));
        return false;            
    }
    $this->output->set_output(json_encode([
        'result' => 0,
        'error' => 'Could not find data.'
    ]));

    }

在我的本地它返回相应的记录,但在实时服务器上它返回 0。

标签: php

解决方案


您没有其他声明:

<?php

if ((isset($cust) && !empty($cust)) && (isset($start_date) && !empty($start_date)) && (isset($end_date) && !empty($end_date))){

        $this->db->select('t1.cust_name, t1.act_type, t1.act_detail, t1.date_added, t1.date_modified, t1.act_notes')
                ->from('activity as t1')
                ->join('user as t2', 't1.user_id = t2.user_id', 'LEFT')
                ->where('t1.cust_name', $cust)
                ->where('t2.user_id', $user)
                ->where('DATE(t1.date_added) >= ', $start_date)
                ->where('DATE(t1.date_modified) <= ', $end_date);
        $query = $this->db->get();
        $result = $query->result_array();                        

    if ($result) {
        $this->output->set_output(json_encode([
            'result' => 1,
            'data' => $query->result_array()
        ]));
        return false;            
    }else{
        $this->output->set_output(json_encode([
            'result' => 0,
            'error' => 'Failed Query'
        ]));
    }
}else{
        $this->output->set_output(json_encode([
            'result' => 0,
            'error' => 'Values Not Set'
        ]));
}

?>

此外,如果这不是一个函数,则 putreturn false;不会返回任何内容,这可能就是它一直运行的原因。


推荐阅读