2012-04-12 9 views
2

Oracle 10gでクエリが失敗した場合、特定のエラーメッセージが表示されます。 MySQLの場合、PHPにはmysql_error()関数があり、クエリが失敗した理由の詳細を返すことができます。私はoci_execute()関数のphp.netマニュアルをチェックしていますが、私が見るものからは失敗した場合にfalseを返すだけです。oci_execute()エラー(PHP)

oc_error()を使ってみましたが、何も得られませんでした。ここで

は、コードサンプルです:しますprint_rため

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

はレスポンス($ errを):

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

答えて

6

あなたはOCI_ERRORする$のSTIDを渡そうとしましたがありますか?

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

oci_error()関数は、エラーのコンテキストを指定する引数をとります。引数を渡すことは、特定の種類の接続エラーに対してのみ機能します。

$err = oci_error($stid); 

oci_errorからの戻り値が配列であるので、私はあなたの$err配列変数への出力全体を割り当てることにも注意してください)

:何がやりたいことはそうのように、解析されたステートメントリソースを渡すことです