2 Stimmen

Oci_bind_by_name: PHP Fataler Fehler: Nur Variablen können per Referenz übergeben werden

Ich versuche, eine Funktion aus einem Oracle-Paket aufzurufen, und ich erhalte diesen Fehler:

PHP Fatal error: Es können nur Variablen per Referenz übergeben werden

Das ist mein Code:

    $connection = $this->getConnection();

    if (!$connection){
        return null;
    }

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

    // Den Fehler bekomme ich in dieser Zeile:
    oci_bind_by_name($s, ":param1", "13")

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

Ich habe mir andere Beiträge mit genau diesem Fehler angesehen, aber keiner scheint mit diesem Problem zusammenzuhängen.

Ich benutze PHP-Version 5.5.6 über IIS 7.5 auf einem Windows 7-Rechner.

Das ist die Definition der Funktion in meinem Paket:

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

8voto

db-mobile Punkte 304

Der dritte Parameter von oci_bind_by_name wird per Referenz übergeben, daher müssen Sie ihn zunächst in einer Variable speichern:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X