我试图运行这个php代码在oracle数据库中插入值,但是在运行它时显示错误。我的代码是:
<?php
$c = oci_connect('system', 'passward', 'dbname');
$sql = "INSERT INTO EMPLOYEES(EMP_ID,JOB_ID) VALUES (:emp_id, ".'{$nw}'.")";
$compiled = oci_parse($c, $sql);
oci_bind_by_name($compiled, ':emp_id', $eid);
oci_bind_by_name($compiled, '.$nw.', $nw);
oci_execute($compiled);
?>
我得到了跟踪错误
警告: oci_bind_by_name():ORA-01036:第16行C:\xampp\htdocs\folder\add_emp.php中的非法变量名/号 警告: oci_execute():ORA-00911:第17行C:\xampp\htdocs\folder\add_emp.php中的无效字符
$nw
Ι知道问题在于Ι在哪里编写Ι,但只是不知道正确的语法或方式。
发布于 2014-02-13 08:28:51
你做得不对,
$sql = "INSERT INTO EMPLOYEES(EMP_ID,JOB_ID) VALUES (:emp_id, :nw)";
$compiled = oci_parse($c, $sql);
oci_bind_by_name($compiled, ':emp_id', $eid);
oci_bind_by_name($compiled, ':nw', $nw);
发布于 2014-02-13 08:27:38
试一试
$sql = "INSERT INTO EMPLOYEES(EMP_ID,JOB_ID) VALUES (:emp_id, :nw)";
查询中的问题是,您正在关闭“然后将{$nw}连接在单引号之间的字符串中,php知道不应该用一个变量替换它--它只是一个字符串。因此,您的查询到达oracle时如下所示:
插入员工(EMP_ID,JOB_ID)值(whatever_int_in_eid,{$nw});
https://stackoverflow.com/questions/21748720
复制相似问题