1
0
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:
Christopher Jones
2009-10-01 05:51:11 +00:00
parent 2f81bcd44b
commit 609804cd44
2 changed files with 75 additions and 0 deletions
+6
View File
@@ -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);
+69
View File
@@ -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===