I'm getting the following error using oci_bind_by_name(). 

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in
/appl/wideacc/CustMast/in/OCIpreptest.php on line 23

 

As you can see by the commented out bind lines, I have tried many different
parms in the bind and I tried the insert with the field names and without

 

I was getting the error on a "real" table so to isolate the issue I created
a test table with one field in it (the field is a varchar(25) and called
TESTNAME)

We are running php 5.2.2 with oci8 1.2.3 (rev 1.269.2.16.2.32),  against
Oracle 10g rel 10.2.0.2.0 on SunOS ver 5.10

 

What makes this even stranger, if I do not "die" on the failure of the bind
the oci_execute() returns true but no row is inserted into the table.

I can get this to work with PEAR_DB and MDB2 but we are doing some
performance testing so we want to see how using oci direct without any DB
layers performs.

Below is the test code I'm running;


//Connect to the Database 
$dbUser  = 'c1'; 
$dbPSWD  = p1'; 
$db = 'db1';  
$con = oci_connect($dbUser, $dbPSWD, $db); 
if (!$con) die ('Connect to DB failed'); 
//$insSQL = 'INSERT INTO KB_TEST (TESTNAME) VALUES (:TESTNAME)'; 
$insSQL = "INSERT INTO KB_TEST  VALUES (:TESTNAME)"; 
$insSQL = strtoupper($insSQL); // upper case since ORACLE prefers upper and
we know we do not have a case issue
echo "SQL is $insSQL \n"; 
$stmt = oci_parse($con, $insSql); 
if (!$stmt) die ('Parse for insert failed'); 
//oci_bind_by_name ($stmt, ":TESTNAME", "ERIC", 25, SQLT_CHAR); 

//oci_bind_by_name ($stmt, ":TESTNAME", "ERIC");

//oci_bind_by_name ($stmt, ":TESTNAME", "ERIC",-1);

//oci_bind_by_name ($stmt, ':TESTNAME', 'ERIC');

//oci_bind_by_name ($stmt, ':TESTNAME', 'ERIC',-1);
$val = 'ERIC'; 
$bindVar = ':TESTNAME'; 
if (oci_bind_by_name ($stmt, $bindVar, $val)) { 
        echo "Bind Successful \n"; 
}  else { 
        oci_close($con); 
        die ("***** Bind Failed ***** "); 
   } 
if (oci_execute ($stmt)) { 
        echo "execute was good \n"; 
} else { 
        echo "excute FAILED \n"; 
  } 
oci_close($con);

 

SolutionOne

Eric Gewirtz

162 Turk Hill Road

Brewster NY, 10509

Phone: 845-729-7800

FAX:    845-279-5502

 

_______________________________________________
New York PHP User Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

http://www.nyphp.org/show_participation.php

Reply via email to