连接到Oracle的PHP脚本适用于整数但不适用于字符串,但该脚本适用于SQL_Developer

时间:2013-07-30 19:33:12

标签: php sql oracle plsql oracle-sqldeveloper

修改

解决了问题:我在某些时候错误地删除了PL / SQL过程中的一行,启用了DBMS输出,因此它无法发送任何PHP。在SQL开发人员中进行测试时,我必须连接到我的网络,而我用来执行DBMS输出的代码,这就是为什么它在SQL_Developer中工作而不在PHP中工作。

我觉得非常愚蠢现在已经归结为错误的代码行。

如果有人有类似的话,我会在下面留下查询


将我的头撞在一张桌子上试图弄清楚为什么这不起作用。

这是使用PHP连接到Oracle数据库,在SQL_Developer中创建代码。

我创建了一个PL / SQL过程,它将两个整数作为起始和结束节点并吐出一些方向,这在SQL_Developer和PHP中运行良好和花花公子。我的PHP中的select语句就是这样,并返回了我需要的内容。

$get_instruc = "Select * FROM TABLE(Navi_Instructions.Get_Navi_Instructions(:start_node,:end_node))";

(使用oci_bind_by_name绑定整数)。

我现在要求整数是字符串,所以我重新编写了PL / SQL过程以适应这种情况。我的新过程工作正常,当我在SQL_Developer中使用以下select语句时,它会检索正确的数据

Select * FROM TABLE(Navi_Instructions_Final.Get_Navi_Instructions_Final('Room_101','Room_120'));

我的下一步是简单地将这个select语句放入PHP中,但PHP select语句拒绝返回任何值。我刚回来“选择了0行”。

$get_instruc = "Select * FROM TABLE(Navi_Instructions_Final.Get_Navi_Instructions_Final(:start_node_final,:end_node_final))";

(使用oci_bind_by_name绑定字符串。)

我真的不明白它是如何工作的,select语句在SQL_Developer中工作,所以它不是PL / SQL过程或语句。这些值最初有空格,我用下划线代替,但没有帮助。我在字符串周围使用了''和“”。我试过删除绑定,只使用像

这样的普通字符串
$get_instruc = "Select * FROM TABLE(Navi_Instructions_Final.Get_Navi_Instructions_Final('Room_101','Room_120'))"

我是否遗漏了一些基本的东西,比如Oracle无法通过PHP接收字符串/ varchars?任何帮助将不胜感激。

0 个答案:

没有答案