2016-04-29 17 views
0

Ich versuche, eine gespeicherte Oracle-Prozedur auf einer PHP-Website mit ODBC aufrufen. Ich habe eine Tabelle mit dem Namen "Mitarbeiter". Ich möchte die Gesamtzahl der Mitarbeiter auf der Website sehen. Unten beschreibe ich die Funktion, die Prozedur und pl/sql, um normal von SQL zu laufen.So rufen Sie Oracle gespeicherte Prozedur bei PHP mit ODBC

FUNKTION:

CREATE OR REPLACE FUNCTION func_totalEmployees 
RETURN number IS 
t_emp number; 
BEGIN 
     select count(*) INTO t_emp from employees; 
    RETURN t_emp; 
END; 

Diese Funktion wird alle Eintrag in Tabelle employees zählen. Dann speichern Sie den Wert bei

t_emp

VERFAHREN:

CREATE OR REPLACE PROCEDURE pro_totalEmployees(totalEmployees OUT number) 
IS 
BEGIN 
    totalEmployees := func_totalEmployees; 

END; 

Dieses Verfahren wird unsere Funktion und Ausgabe ein Wert mit totalEmployees variabel ausgeführt werden.

PL/SQL:

DECLARE 
see_totalEmployees number; 
BEGIN 
    pro_totalEmployees(see_totalEmployees); 
     dbms_output.put_line('Total Employees you have: ' || see_totalEmployees); 
END; 

nun der Ausführungsteil. Dies ist nur eine einfache pl/sql-Abfrage, die die Gesamtzahl der Mitarbeiter aus unserer Prozedur mit der Variablen ausgibt. See_totalMitarbeiter

Das war's!

Also bei sql, bekam ich die Ausgabe: Gesamt Mitarbeiter Sie haben: 107

Jetzt meine Frage:

Wie kann ich diese 107 in eine PHP-Variablen speichern ODBC?

Bitte Hilfe. Vielen Dank im Voraus

Antwort

0

Sie irgendeine Sache wie diese versuchen kann,

<?php 
    $Tot_emp = 0; 

    // Create connection to db 
    $conn = odbc_connect('db_name','user_name','password') or die; 

    // Call your procedure 
    $stmt = $conn->prepare("CALL sp_returns_string(?)"); 

    // Bind the output parameter 
    $stmt->bindParam(1, $Tot_emp, PDO::PARAM_STR, 4000);  

    // call the stored procedure 
    $stmt->execute();   

    // $message is now populated with the output value 
    print "$Tot_emp\n"; 
    ?> 
+0

Danke. Aber ich benutze ODBC, um Verbindung zur Datenbank herzustellen. Da ich nicht viel weiß, kann ich Oci in der Mitte des Programms verwenden? Bitte beraten. :) –