Php 警告:oci_bind_by_name():ORA-01036:中的变量名/编号非法

Php 警告:oci_bind_by_name():ORA-01036:中的变量名/编号非法,php,oracle11g,Php,Oracle11g,我想使用简单的oracle insert语句从oracle数据库上的变量数据中使用php,但我在浏览器上遇到错误: oci_bind_by_name():ORA-01036:非法变量名/编号 我遵循几个答案,但没有得到答案为我工作。这是我的密码: include("conn.php"); $THR_ATTENDANCERAW_ID = 'AAANttAAMAAANG1ABF'; $AD_CLIENT_ID = '8D8C2A846B25451288

我想使用简单的oracle insert语句从oracle数据库上的变量数据中使用php,但我在浏览器上遇到错误:

oci_bind_by_name():ORA-01036:非法变量名/编号

我遵循几个答案,但没有得到答案为我工作。这是我的密码:

include("conn.php");
            $THR_ATTENDANCERAW_ID = 'AAANttAAMAAANG1ABF';
            $AD_CLIENT_ID = '8D8C2A846B2545128823CC7611C9EF80';
            $AD_ORG_ID = 'BB7935DD9F9F46B8A3CEBFB8CA73929B';
            $ISACTIVE = 'Y';
            $CREATED = '03/21/2018 10:20:12';
            $CREATEDBY = '0';
            $UPDATED = '03/21/2018 10:20:12';
            $UPDATEDBY = '0';
            $CHECKTIME = '03/21/2018 10:20:12';
            $USERNO = '10842803';
            $DOCUMENTNO = '0010842803';
            $ISMANUAL = 'N';
            $DEVICENO = '2';
            $ATTENDANCETYPE = '0';
            $ERROR_CODE = '0';
            $PRODUCTNAME = 'NULL';
            $SERIAL_NUMBER = 'NULL';
            $ACCOUNT_NUMBER = 'NULL';
            $NAME = 'NULL';
            $S_TIME = 'NULL';
            $MACHINE = 'NULL';
            $VERIFY_MODE = 'NULL';




            $sql1 = "
            INSERT INTO THR_ATTENDANCERAW (THR_ATTENDANCERAW_ID, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE, CREATED, 
                        CREATEDBY, UPDATED, UPDATEDBY, CHECKTIME, USERNO, 
                        DOCUMENTNO, ISMANUAL, DEVICENO, ATTENDANCETYPE, ERROR_CODE, 
                        PRODUCTNAME, SERIAL_NUMBER, ACCOUNT_NUMBER, NAME, S_TIME, 
                        MACHINE, VERIFY_MODE) 
            VALUES (
                'AAANttAAMAAANG1ABF, :AD_CLIENT_ID, :AD_ORG_ID, :ISACTIVE, :CREATED, :CREATEDBY, :UPDATED, :UPDATEDBY, :CHECKTIME, :USERNO, :DOCUMENTNO, :ISMANUAL, :DEVICENO, :ATTENDANCETYPE, :ERROR_CODE, :PRODUCTNAME, :SERIAL_NUMBER, :ACCOUNT_NUMBER, :NAME, :S_TIME, :MACHINE, :VERIFY_MODE')" ;
            //echo $sql1;
       $compiled1 = oci_parse($conn, $sql1);

            oci_bind_by_name($compiled1, ':THR_ATTENDANCERAW_ID', $THR_ATTENDANCERAW_ID);
            oci_bind_by_name($compiled1, ':AD_CLIENT_ID', $AD_CLIENT_ID);
            oci_bind_by_name($compiled1, ':AD_ORG_ID', $AD_ORG_ID);
            oci_bind_by_name($compiled1, ':ISACTIVE', $ISACTIVE);
            oci_bind_by_name($compiled1, ':CREATED', $CREATED);
            oci_bind_by_name($compiled1, ':CREATEDBY', $CREATEDBY);
            oci_bind_by_name($compiled1, ':UPDATED', $UPDATED);
            oci_bind_by_name($compiled1, ':UPDATEDBY', $UPDATEDBY);
            oci_bind_by_name($compiled1, ':CHECKTIME', $CHECKTIME);
            oci_bind_by_name($compiled1, ':USERNO', $USERNO);
            oci_bind_by_name($compiled1, ':DOCUMENTNO', $DOCUMENTNO);
            oci_bind_by_name($compiled1, ':ISMANUAL', $ISMANUAL);
            oci_bind_by_name($compiled1, ':DEVICENO', $DEVICENO);
            oci_bind_by_name($compiled1, ':ATTENDANCETYPE', $ATTENDANCETYPE);
            oci_bind_by_name($compiled1, ':ERROR_CODE', $ERROR_CODE);
            oci_bind_by_name($compiled1, ':PRODUCTNAME', $PRODUCTNAME);
            oci_bind_by_name($compiled1, ':SERIAL_NUMBER', $SERIAL_NUMBER);
            oci_bind_by_name($compiled1, ':ACCOUNT_NUMBER', $ACCOUNT_NUMBER);
            oci_bind_by_name($compiled1, ':NAME', $NAME);
            oci_bind_by_name($compiled1, ':S_TIME', $S_TIME);
            oci_bind_by_name($compiled1, ':MACHINE', $MACHINE);
            oci_bind_by_name($compiled1, ':VERIFY_MODE', $VERIFY_MODE);



        oci_execute($compiled1); 

        ?>
错误显示为:

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 42

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 43

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 44

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 45

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 46

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 47

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 48

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 49

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 50

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 51

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 52

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 53

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 54

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 55

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 56

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 57

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 58

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 59

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 60

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 61

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 62

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\php_zklib\insert.php on line 63

Warning: oci_execute(): ORA-00947: not enough values in C:\xampp\htdocs\php_zklib\insert.php on line 67
我不使用PHP

错误堆栈中的最后一行是

警告:oci_execute():ORA-00947:值不足

如果您看看$sql1,它是这样说的:

INSERT INTO THR_ATTENDANCERAW 
  (THR_ATTENDANCERAW_ID, 
   AD_CLIENT_ID, 
   <snip>
   VERIFY_MODE)
 VALUES 
   ('AAANttAAMAAANG1ABF, :AD_CLIENT_ID, <snip>, :VERIFY_MODE')
    ^                                                       ^
    here                                                    here
插入到THR\u AW中
(请注意,
AD_客户ID,
验证(U模式)
价值观
('aaanttaamang1ABF,:AD_客户机ID,:验证_模式')
^                                                       ^
在这里
看到最后一行的单引号了吗?在Oracle中,它们意味着您正在插入一个字符串(这就是您在这些单引号之间看到的所有内容)

我假设Oracle认为有22列需要填充一些值,而您只在第一列(THR_ID)中插入了一个长字符串


因此,由于第一个值看起来确实像一个字符串,请仅将该值括在单引号中,即
'aaanttaamang1abf'
,并保持其余值不变(当然,删除结尾的单引号)。

请阅读-总结是,这不是解决志愿者问题的理想方法,而且可能对获得答案起到反作用。请不要将此添加到您的问题中。我明白了,谢谢您的帮助