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

Alv*_*aro 2 php oracle-call-interface oracle11g iis-7.5

我正在尝试从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)){
             ....
    }
    ...
Run Code Online (Sandbox Code Playgroud)

我一直在查看其他帖子,但这些错误完全相同,但似乎没有一个与此问题相关.

我在Windows 7机器上使用PHP 5.5.6而不是IIS 7.5.

这是我的pacakage功能的定义:

FUNCTION my_function(param1 IN VARCHAR2) RETURN CLOB IS
BEGIN
-- etc...
-- etc...
END;
Run Code Online (Sandbox Code Playgroud)

小智 7

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

$param1 = "13";
oci_bind_by_name($s, ":param1", $param1);
Run Code Online (Sandbox Code Playgroud)