Php 警告:oci_bind_by_name():ORA-01036:中的变量名/编号非法
我想使用简单的oracle insert语句从oracle数据库上的变量数据中使用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
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'
,并保持其余值不变(当然,删除结尾的单引号)。请阅读-总结是,这不是解决志愿者问题的理想方法,而且可能对获得答案起到反作用。请不要将此添加到您的问题中。我明白了,谢谢您的帮助