Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php代码在oracle数据库中插入变量数据时出错_Php_Oracle - Fatal编程技术网

使用php代码在oracle数据库中插入变量数据时出错

使用php代码在oracle数据库中插入变量数据时出错,php,oracle,Php,Oracle,我试图运行此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',

我试图运行此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\u emp.php中

警告:oci_execute():ORA-00911:中的字符无效 第17行C:\xampp\htdocs\folder\add\u emp.php

我知道问题出在哪里,只是不知道正确的语法或方式

试试看

$sql = "INSERT INTO EMPLOYEES(EMP_ID,JOB_ID) VALUES (:emp_id, :nw)";
查询中的问题是,您正在关闭“然后将{$nw}正好连接到这个字符串,正如您将它放在单引号之间一样,php理解它不应该用变量替换它,它只是一个字符串。因此,您的查询到达oracle时是这样的:


在员工(EMP_ID,JOB_ID)中插入值(无论是什么值,{$nw});

如果操作不正确

$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);

非常感谢mush Rikesh,,,我做了,它成功了。很高兴帮助你接受它,如果它有助于你解决问题。你需要接受正确的答案。检查这个)我做了,tick marj现在是绿色的,这是你想要传达的吗??