2014-01-14 38 views
2

我試圖從Oracle包調用一個功能,我得到這個錯誤被傳遞:oci_bind_by_name:PHP致命錯誤:只有變量可以通過參考

PHP Fatal error: Only variables can be passed by reference

這是我的代碼:

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

回答

7
oci_bind_by_name的

第三個參數是按引用傳遞的,因此你需要將其先存儲在一個變量:

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

謝謝很多!午餐後我會接受! :) – Alvaro