我正在使用带有PHP codeigniter的Oracle 10g。
我有一个存储过程,我通过SQL命令行运行命令行。
这是我的程序: -
CREATE OR REPLACE PROCEDURE
insertMovie (id IN NUMBER, title IN VARCHAR2,
sdate IN DATE, edate IN DATE,
image IN VARCHAR2, add_date IN DATE,
message OUT NUMBER)
AS
BEGIN
INSERT INTO tbl_movie (movie_id, movie_title, movie_sdate, movie_edate, movie_image, movie_add_date)
VALUES ( id, 'title', to_date(sdate, 'yyyy-mm-dd hh24:mi:ss'), to_date(edate, 'yyyy-mm-dd hh24:mi:ss'), 'movie_image', to_date(add_date, 'yyyy-mm-dd hh24:mi:ss'));
message := 1;
EXCEPTION
WHEN OTHERS THEN
message := 0;
END;
/
现在,我正在尝试通过PHP(codeigniter)插入数据。 这是我的模型功能: -
function add_movie($entity,$insertData,$time)
{
$conn = oci_connect("XXXXXX", "XXXXXX","XXXXXXX");
if(!$conn)
{
echo "connect failed".oci_error();
}
else
{
echo "connect done at".date('d-m-y');
// calling stored procedure insertMovie
$insertMovieProcedureSQL = "BEGIN insertMovie(:id, :title, :sdate, :edate, :image , :add_date, :message); END;";
$stmt = oci_parse($conn, $insertMovieProcedureSQL);
// Bind the input parameter
oci_bind_by_name($stmt,':id',$insertData['movie_id']);
oci_bind_by_name($stmt,':title',$insertData['movie_title']);
oci_bind_by_name($stmt,':sdate',$insertData['movie_sdate']);
oci_bind_by_name($stmt,':edate',$insertData['movie_edate']);
oci_bind_by_name($stmt,':image',$insertData['movie_image']);
oci_bind_by_name($stmt,':add_date',$insertData['movie_add_date']);
// Bind the output parameter
oci_bind_by_name($stmt,':message',$message,32);
// Assign a value to the input
//$name = 'Harry';
oci_execute($stmt);
// $message is now populated with the output value
echo "$message\n";
}
}
我从控制器调用这个函数: -
public function testMovie()
{
$insertData['movie_id'] = 1;
$insertData['movie_title']= 'test';
$insertData['movie_sdate']= '2017-02-24 00:00:00';
$insertData['movie_edate']= '2017-02-27 00:00:00';
$insertData['movie_image']= 'rfgt';
$insertData['movie_add_date']= '2017-02-20 00:00:00';
$this->load->model('oracle_model');
$return = $this->oracle_model->add_movie('movie',$insertData,'');
}
我收到此错误消息:
Message: oci_execute(): ORA-01861: literal does not match format string ORA-06512: at line 1
我能解决这个问题吗?