Oracle 10g でクエリが失敗した場合に特定のエラー メッセージを取得したいと考えています。MySQL の場合、PHP には mysql_error() 関数があり、クエリが失敗した理由に関する詳細を返すことができます。oci_execute() 関数の php.net マニュアルを確認しましたが、失敗した場合にのみ false を返します。
oc_error() を使用してみましたが、何も得られません。
コードサンプルは次のとおりです。
$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);
print_r($err) の応答:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => )