【发布时间】:2017-04-22 15:12:46
【问题描述】:
我创建了以下正常工作的存储过程。
CREATE DEFINER=`root`@`localhost` PROCEDURE `SPTeam`(IN date_x date, OUT emplist3 varchar(200))
BEGIN
select employee.name as emplist3
from employee
where employee.id IN (
select emp_position.employee_id
from emp_position
where emp_position.employee_id NOT IN (
select emp_event.employee_id
from emp_event
where emp_event.date = date_x
)
AND emp_position.position = "Cameraman"
);
END
我在codeigniter模型中通过以下代码调用这个存储过程。
$SQL = "call SPTeam("
. $date.","
. " @emplist3" //output
.");";
$this->db->trans_start();
$query = $this->db->query($SQL);
$this->db->trans_complete();
$result = array();
foreach($query->result() as $rows){
$result[]=$rows;
}
return $query->result();
}
在我的控制器中,我将 $date 传递给上述模型函数,如下所示。
$date = '06/12/2016';
$data= $this->employee_model->sp_call($date) ;
但它给出了错误的结果。 我也尝试了以下日期格式。
$date = '2016-12-14';
$data= $this->employee_model->sp_call($date) ;
它给出了以下错误。
Error Number: 1292
Incorrect date value: '1990' for column 'date_x' at row 1
call SPTeam(2016-12-14, @emplist3);
请有人帮我纠正这个问题。
【问题讨论】:
标签: mysql codeigniter stored-procedures