Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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_Stored Procedures_Oracle Sqldeveloper_Parameterized Query - Fatal编程技术网

Php Oracle存储过程使用绑定参数失败

Php Oracle存储过程使用绑定参数失败,php,oracle,stored-procedures,oracle-sqldeveloper,parameterized-query,Php,Oracle,Stored Procedures,Oracle Sqldeveloper,Parameterized Query,我在Oracle中的一个包中有一个存储过程,它接受几个NUMBER类型作为参数,当显式传递整数时,它可以正常工作 但是,当使用绑定参数(在SQL Developer中)时,我会得到错误错误报告-Missing defines。在PHP中运行它时,它会无声地失败。考虑到使用绑定参数的安全性优势,我不希望用PHP连接查询,而是这样做(是的,我可以使用intval(),它会处理这个问题),因为这个问题不仅仅是带有整数参数的包 这在成功运行和已验证的数据库更改中都有效 BEGIN package_nam

我在Oracle中的一个包中有一个存储过程,它接受几个
NUMBER
类型作为参数,当显式传递整数时,它可以正常工作

但是,当使用绑定参数(在SQL Developer中)时,我会得到错误
错误报告-Missing defines
。在PHP中运行它时,它会无声地失败。考虑到使用绑定参数的安全性优势,我不希望用PHP连接查询,而是这样做(是的,我可以使用
intval()
,它会处理这个问题),因为这个问题不仅仅是带有整数参数的包

这在成功运行和已验证的数据库更改中都有效

BEGIN package_name.procedure_name(
    1,
    2
); END;
然而,事实并非如此

BEGIN package_name.procedure_name(
    :VARIABLE_1,
    :VARIABLE_2
); END;
这也不是:

BEGIN package_name.procedure_name(
    VARIABLE_1 => :VARIABLE_1,
    VARIABLE_2 => :VARIABLE_2
); END;
在sqldeveloper中运行调试提供了逻辑来声明类型,然后将它们作为变量传递,但是在那里添加绑定也会失败


考虑到过程运行时静态参数没有问题,您对产生错误的原因有何看法?

您可以这样使用:

SQL> variable VARIABLE_1 number;
SQL> variable VARIABLE_2 number;
SQL> BEGIN 
package_name.procedure_name(
    :VARIABLE_1,
    :VARIABLE_2
); 
END;/

最终,这需要用PHP来运行(如果不清楚的话,我很抱歉),那么按照这个逻辑我该怎么做呢?@kchason正如我所理解的,你从SQL开发人员的角度问我,对不起,但我不知道与PHP的关系。谢谢,尽管你命名
变量_1
,但我还是会尝试第一步,而绑定
:变量_1
,据我所知,这是行不通的。。。