2016-05-05 9 views
1

Kann mir jemand helfen, wie man die gespeicherte Prozedur in Oracle durch PHP PDO aufruft? Ich habe eine folgende gespeicherte Prozedur.Holen Sie Daten von Oracle SP durch PHP PDO [Ausgabe ist cursor]

sp_getpricedetailforhp (p_pbook in NVARCHAR2,p_plevel in NVARCHAR2,p_item in NVARCHAR2,p_qty in NUMBER,p_date in date,p_customer in NVARCHAR2,c_data OUT sys_refcursor) Die oben gespeicherte Prozedur namens sp_getpricedetailforhp verwendet, um einen Preis anzuzeigen und es einen Cursor ausgeben. Kann mir jemand helfen, die oben gespeicherte Prozedur in PHP PDO aufzurufen. Im neu auf Stored Procedures spielen

Code Nach Ich habe versucht, aber kein Glück gehabt

$output =''; 
$query = "CALL sp_getpricedetailforhp(:p_pbook, :p_plevel, :p_item, :p_qty, :p_date, :p_customer, @c_data)"; 
     $stmt= DBInitialize::MiddleSCM2DBPDO()->prepare($query); 

     $stmt->execute(array(
      ':p_pbook' => 'ABANS', 
      ':p_plevel' => 'A', 
      ':p_item' => 'ABCK1800', 
      ':p_qty' => '1', 
      ':p_date' => '05/May/2016', 
      ':p_customer' => 'N/A', 
      ':c_data' => $output, 
     )); 

print_r($output); 

Danke.

Antwort

0

Sie können diese referance von

http://www.php.net/manual/en/pdo.prepared-statements.php#101993

$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)"); 
$dbh->query("SELECT @someOutParameter"); 

// OR, if you want very much to use PDO.Prepare(), 
// insert "SELECT @someOutParameter" in your stored procedure and then use: 

$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)"); 
$stmt ->execute(array($someInParameter1, $someInParameter2)); 
+0

so dann, wie die Out-Parameter setzen zeigen? – user2006506

+0

mit '@' können Sie die Ausgabe mini Beispiel while ($ row = $ results2-> fetch_object()) { echo $ row bekommen -> { "@ p_userid"}; } –

+0

Aber meine sp bekommen einen Cursor. Also wie mache ich das? – user2006506