Php 文字与格式字符串ORA-06512不匹配
我正在使用Oracle 10g和PHP codeigniter 我有一个通过SQL命令行运行的存储过程 以下是我的程序:-Php 文字与格式字符串ORA-06512不匹配,php,oracle,codeigniter,Php,Oracle,Codeigniter,我正在使用Oracle 10g和PHP codeigniter 我有一个通过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,
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
我怎样才能解决这个问题?的可能重复