对于oci_execute()错误(PHP)
问题描述:
如果查询在Oracle 10g中失败,我想获得特定的错误消息。对于MySQL,PHP具有mysql_error()函数,可以返回有关查询失败原因的详细信息。我检查oci_execute()函数的php.net手册,但从我看到它只在失败时返回false。对于oci_execute()错误(PHP)
我试过使用oc_error(),但我没有从它得到任何东西。
下面是一个代码示例:
为的print_r($ ERR)$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);
响应:
Array ([0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] =>)
答
您是否尝试过通过$ STID到oci_error?
$err[$e] = oci_error($stid);
答
oci_error()
函数带有一个参数,该参数指定错误的上下文。传递它没有参数将只适用于某些类型的连接错误。你想要做的就是通过解析的语句资源,就像这样:
$err = oci_error($stid);
(还请注意,从oci_error
返回值是一个数组,所以我分配到整个输出到您的$err
数组变量)