php - How to resolve ORA-01036 -
i creating online system using php , oracle oci8.
anyone here have encountered error:
warning: oci_bind_by_name() [function.oci-bind-by-name]: error while trying retrieve text error ora-01036 in dbcontrol.php on line 50 success
here dbcontrol.php:
function plsql_insert($plsql, $array){ $this -> connect(); //create database connection $this -> statement = oci_parse($this -> conn, $plsql); //prepare statement call pl/sql stored procedure foreach ($array $key => $value){ oci_bind_by_name($this -> statement, $key, $array[$key]); } $this -> execute = oci_execute($this -> statement); //execute statement $this -> result = ($this -> execute) ? "success" : "failed"; return $this->result; }
here code calls function:
include "../dbaseconn/dbcontrol.php"; extract($_get); $personalbackground = explode(",",$personalbackground); $arrpersonal = array(); foreach($personalbackground $val) { $tmpdata = explode("*",$val); $arrpersonal[$tmpdata[0]]=$tmpdata[1]; } $arrpersonal[':rec_no'] = '4'; $plsql = "call test.insert_back_personal(:name_last,:name_first,:name_middle,:present_address,:mobile_phone,:permanent_address,:home_number,:date_of_birth,:birth_place,:civil_status,:sss_no,:tin,:philhealth_no,:hdmf_no,:blood_type,:gender,:gov_license,:email_address,:rec_no)"; $dbcontrol = new dbcontrol; echo $dbcontrol->plsql_insert($plsql,$arrpersonal);
and pl/sql block:
create or replace package body recruit.test procedure insert_back_personal( v_name_last in varchar2, v_name_first in varchar2, v_name_middle in varchar2, v_present_address in varchar2, v_mobile_phone in varchar2, v_permanent_address in varchar2, v_home_number in varchar2, v_date_of_birth in char, v_birth_place in char, v_civil_status in char, v_sss_no in varchar2, v_tin in varchar2, v_philhealth in varchar2, v_hdmf_no in varchar2, v_blood_type in varchar2, v_gender in char, v_gov_license in varchar2, v_email_address in varchar2, v_rec_no in varchar2 ) --out_data out cv_type begin insert recruit.back_personal (rec_no, name_last,name_first, name_middle, present_address, mobile_phone, permanent_address, home_number, date_of_birth, birth_place, civil_status, sss_no, tin, philhealth_no, hdmf_no, blood_type, gender, gov_license, email_address, insertdate) values (v_rec_no, v_name_last, v_name_first, v_name_middle, v_present_address, v_mobile_phone, v_permanent_address, v_home_number, v_date_of_birth, v_birth_place, v_civil_status, v_sss_no, v_tin, v_philhealth, v_hdmf_no, v_blood_type, v_gender, v_gov_license, v_email_address, sysdate ); commit; end insert_back_personal;
as try this, can insert database having warning: ora-01036. kinda annoying.
how solve issue?
please visit answer same want...it direct written pl/sql block instead of call procedure....
Comments
Post a Comment