mirror of
https://github.com/php/php-src.git
synced 2026-04-24 16:38:25 +02:00
PECL Bug #16842 (oci_error return false when NO_DATA_FOUND is raised)
This commit is contained in:
@@ -1529,6 +1529,12 @@ sb4 php_oci_error(OCIError *err_p, sword status TSRMLS_DC)
|
||||
break;
|
||||
case OCI_NO_DATA:
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_NO_DATA");
|
||||
errcode = php_oci_fetch_errmsg(err_p, &errbuf TSRMLS_CC);
|
||||
if (errbuf) {
|
||||
efree(errbuf);
|
||||
} else {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCI_NO_DATA: failed to fetch error message");
|
||||
}
|
||||
break;
|
||||
case OCI_ERROR:
|
||||
errcode = php_oci_fetch_errmsg(err_p, &errbuf TSRMLS_CC);
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
--TEST--
|
||||
PECL Bug #16842 (NO_DATA_FOUND exception is a warning)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
|
||||
--INI--
|
||||
error_reporting = E_WARNING
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require(dirname(__FILE__).'/connect.inc');
|
||||
|
||||
// Run Test
|
||||
|
||||
echo "Test 1\n";
|
||||
|
||||
echo "Raises NO_DATA_FOUND\n";
|
||||
$s = oci_parse($c, 'begin raise NO_DATA_FOUND; end;');
|
||||
$e = oci_execute($s);
|
||||
var_dump($e);
|
||||
var_dump(oci_error($s));
|
||||
|
||||
echo "Test 2\n";
|
||||
|
||||
echo "Raises ZERO_DIVIDE\n";
|
||||
$s = oci_parse($c, 'begin raise ZERO_DIVIDE; end;');
|
||||
$e = oci_execute($s);
|
||||
var_dump($e);
|
||||
var_dump(oci_error($s));
|
||||
|
||||
oci_close($c);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
<?php exit(0); ?>
|
||||
--EXPECTF--
|
||||
Test 1
|
||||
Raises NO_DATA_FOUND
|
||||
|
||||
Warning: oci_execute(): OCI_NO_DATA in %s on line 11
|
||||
bool(false)
|
||||
array(4) {
|
||||
[%u|b%"code"]=>
|
||||
int(1403)
|
||||
[%u|b%"message"]=>
|
||||
%unicode|string%(45) "ORA-01403: %s
|
||||
ORA-06512: at line 1"
|
||||
[%u|b%"offset"]=>
|
||||
int(0)
|
||||
[%u|b%"sqltext"]=>
|
||||
%unicode|string%(31) "begin raise NO_DATA_FOUND; end;"
|
||||
}
|
||||
Test 2
|
||||
Raises ZERO_DIVIDE
|
||||
|
||||
Warning: oci_execute(): ORA-01476: %s
|
||||
ORA-06512: at line 1 in %s on line 19
|
||||
bool(false)
|
||||
array(4) {
|
||||
[%u|b%"code"]=>
|
||||
int(1476)
|
||||
[%u|b%"message"]=>
|
||||
%unicode|string%(56) "ORA-01476: %s
|
||||
ORA-06512: at line 1"
|
||||
[%u|b%"offset"]=>
|
||||
int(0)
|
||||
[%u|b%"sqltext"]=>
|
||||
%unicode|string%(29) "begin raise ZERO_DIVIDE; end;"
|
||||
}
|
||||
===DONE===
|
||||
Reference in New Issue
Block a user