我正在使用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。
答案 0 :(得分:0)
您没有其他声明:
<?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'
]));
}
?>
如果这不是将return false;
放回原处的函数,则可能是为什么它一直运行的原因。
答案 1 :(得分:0)
我可能会重写您的代码,包括try/catch
并强制显示错误。不要忘记,在实时服务器中,大多数错误都设置为隐藏。因此,最终用户不会看到明显的错误。
要调试
try {
//put your code hear
} catch (\Exception $e) {
die('An exception :- '. $e->getMessage());
}
如果仍然不能带给您足够的信息来进行调试,请在php
文件的开头添加以下几行。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
不要忘记,解决问题后,请删除或注释掉以上三个错误报告行。因为您不想向最终用户显示内部错误。
希望这可以帮助您调试问题。
干杯。