2012-04-12 19 views
2

Ich möchte die spezifische Fehlermeldung erhalten, wenn eine Abfrage in Oracle 10g fehlschlägt. Für MySQL verfügt PHP über die Funktion mysql_error(), die Details dazu liefern kann, warum eine Abfrage fehlgeschlagen ist. Ich überprüfe das php.net-Handbuch für die oci_execute() - Funktion, aber von was ich sehe, gibt es nur falsch bei fehlgeschlagen.Erhalte Fehlermeldung für oci_execute() Fehler (PHP)

Ich versuchte mit oc_error(), aber ich bekomme nichts davon.

Hier ist ein Codebeispiel:

$err = array(); 
    $e = 0; 

    //Cycle through all files and insert new records into database 
    for($f=0; $f<sizeof($files); $f++) 
    { 
     $invoice_number = $files[$f]['invoice_number']; 
     $sold_to = $files[$f]['sold_to']; 
     $date = $files[$f]['date']; 

     $sql = "insert into invoice (dealer_id, invoice_number, invoice_date) 
       values ('$sold_to', '$invoice_number', '$date')"; 

     $stid = oci_parse($conn, $sql); 
     $result = oci_execute($stid); 

     //If query fails 
     if(!$result) 
     { 
      $err[$e] = oci_error(); 
      $e++; 
     } 
    } 

    print_r($err); 

Antwort für print_r ($ err):

Array ([0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] =>) 

Antwort

6

Haben Sie versucht, $ stid oci_error zu passieren?

$err[$e] = oci_error($stid); 
3

Die Funktion oci_error() nimmt ein Argument, das den Kontext Ihres Fehlers angibt. Wenn Sie kein Argument übergeben, funktioniert das nur bei bestimmten Arten von Verbindungsfehlern. Was Sie tun möchten, ist die analysierte Anweisung Ressource übergeben, etwa so:

$err = oci_error($stid); 

(Beachten Sie auch, dass der Rückgabewert von oci_error ein Array ist, so zugewiesen ich die gesamte Ausgabe an Ihren $err Array-Variable)

Verwandte Themen