oci_bind_by_name:PHP致命错误:只能通过引用传递变量

时间:2014-01-14 13:21:54

标签: php oracle11g iis-7.5 oci

我正在尝试从Oracle包调用一个函数,我收到了这个错误:

  

PHP致命错误:只能通过引用传递变量

这是我的代码:

    $connection = $this->getConnection();

    if (!$connection){
        return null;
    }

    $s = oci_parse($connection, "begin my_package.my_function(
            :param1
        ); end;");

    //getting the error in this following line:
    oci_bind_by_name($s, ":param1", "13")


    if($result = oci_execute($s)){
             ....
    }
    ...

我一直在查看其他帖子,但是这些错误似乎与此问题无关。

我在Windows 7计算机上使用PHP 5.5.6而不是IIS 7.5。

这是我的pacakage功能的定义:

FUNCTION my_function(param1 IN VARCHAR2) RETURN CLOB IS
BEGIN
-- etc...
-- etc...
END;

1 个答案:

答案 0 :(得分:7)

oci_bind_by_name的第三个参数是通过引用传递的,因此您需要先将它存储在变量中:

$param1 = "13";
oci_bind_by_name($s, ":param1", $param1);