mirror of
https://github.com/php/php-src.git
synced 2026-04-23 07:58:20 +02:00
fef879a2d6
PHP requires boolean typehints to be written "bool" and disallows
"boolean" as an alias. This changes the error messages to match
the actual type name and avoids confusing messages like "must be
of type boolean, boolean given".
This a followup to ce1d69a1f6, which
implements the same change for integer->int.
395 lines
8.5 KiB
PHP
395 lines
8.5 KiB
PHP
--TEST--
|
|
Bug #51291 (oci_error() doesn't report last error when called two times)
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
require(dirname(__FILE__).'/connect.inc');
|
|
|
|
echo "Test 1 - Parse\n";
|
|
|
|
$s = @oci_parse($c, "select ' from dual");
|
|
if (!$s) {
|
|
var_dump(oci_error($c));
|
|
echo "2nd call\n";
|
|
var_dump(oci_error($c));
|
|
}
|
|
|
|
echo "\nTest 2 - Parse\n";
|
|
|
|
$s = @oci_parse($c, "select ' from dual");
|
|
if (!$s) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
echo "2nd call\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
}
|
|
|
|
echo "\nTest 3 - Execute\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error($s));
|
|
echo "2nd call\n";
|
|
var_dump(oci_error($s));
|
|
}
|
|
|
|
echo "\nTest 4 - Execute - consecutive oci_error calls of different kinds\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
echo "2nd call\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
}
|
|
|
|
|
|
echo "\nTest 5 - Execute - after oci_rollback\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
$r = oci_rollback($c);
|
|
echo "Rollback status is ";
|
|
if (is_null($r)) echo "null";
|
|
else if ($r === false) echo "false";
|
|
else if ($r === true) echo "true";
|
|
else echo $r;
|
|
echo "\n";
|
|
echo "2nd call after oci_rollback\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
}
|
|
|
|
|
|
echo "\nTest 6 - Execute - after successful 2nd query with new handle\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
$s2 = oci_parse($c, 'select 1 from dual');
|
|
$r = oci_execute($s2, OCI_DEFAULT);
|
|
echo "Execute status is ";
|
|
if (is_null($r)) echo "null";
|
|
else if ($r === false) echo "false";
|
|
else if ($r === true) echo "true";
|
|
else echo $r;
|
|
echo "\n";
|
|
echo "2nd call after successful execute\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s), oci_error($s2));
|
|
}
|
|
|
|
|
|
echo "\nTest 7 - Execute - after successful 2nd query with same handle\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
$s = oci_parse($c, 'select 1 from dual');
|
|
$r = oci_execute($s, OCI_DEFAULT);
|
|
echo "Execute status is ";
|
|
if (is_null($r)) echo "null";
|
|
else if ($r === false) echo "false";
|
|
else if ($r === true) echo "true";
|
|
else echo $r;
|
|
echo "\n";
|
|
echo "2nd call after successful execute\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
}
|
|
|
|
|
|
echo "\nTest 8 - Execute - after unsuccessful 2nd query with new handle\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
$s2 = oci_parse($c, 'select reallynothere from dual');
|
|
$r = oci_execute($s2, OCI_DEFAULT);
|
|
echo "Execute status is ";
|
|
if (is_null($r)) echo "null";
|
|
else if ($r === false) echo "false";
|
|
else if ($r === true) echo "true";
|
|
else echo $r;
|
|
echo "\n";
|
|
echo "2nd call after unsuccessful execute\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s), oci_error($s2));
|
|
}
|
|
|
|
echo "\nTest 9 - Execute - after unsuccessful 2nd query with same handle\n";
|
|
|
|
$s = @oci_parse($c, 'select doesnotexist from dual');
|
|
$r = @oci_execute($s, OCI_DEFAULT);
|
|
if (!$r) {
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
$s = oci_parse($c, 'select reallynothere from dual');
|
|
$r = oci_execute($s, OCI_DEFAULT);
|
|
echo "Execute status is ";
|
|
if (is_null($r)) echo "null";
|
|
else if ($r === false) echo "false";
|
|
else if ($r === true) echo "true";
|
|
else echo $r;
|
|
echo "\n";
|
|
echo "2nd call after unsuccessful execute\n";
|
|
var_dump(oci_error(), oci_error($c), oci_error($s));
|
|
}
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
Test 1 - Parse
|
|
array(4) {
|
|
["code"]=>
|
|
int(1756)
|
|
["message"]=>
|
|
string(48) "ORA-01756: %s"
|
|
["offset"]=>
|
|
int(0)
|
|
["sqltext"]=>
|
|
string(0) ""
|
|
}
|
|
2nd call
|
|
array(4) {
|
|
["code"]=>
|
|
int(1756)
|
|
["message"]=>
|
|
string(48) "ORA-01756: %s"
|
|
["offset"]=>
|
|
int(0)
|
|
["sqltext"]=>
|
|
string(0) ""
|
|
}
|
|
|
|
Test 2 - Parse
|
|
|
|
Warning: oci_error() expects parameter 1 to be resource, bool given in %sbug51291_1.php on line %d
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(1756)
|
|
["message"]=>
|
|
string(48) "ORA-01756: %s"
|
|
["offset"]=>
|
|
int(0)
|
|
["sqltext"]=>
|
|
string(0) ""
|
|
}
|
|
NULL
|
|
2nd call
|
|
|
|
Warning: oci_error() expects parameter 1 to be resource, bool given in %sbug51291_1.php on line %d
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(1756)
|
|
["message"]=>
|
|
string(48) "ORA-01756: %s"
|
|
["offset"]=>
|
|
int(0)
|
|
["sqltext"]=>
|
|
string(0) ""
|
|
}
|
|
NULL
|
|
|
|
Test 3 - Execute
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
2nd call
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
|
|
Test 4 - Execute - consecutive oci_error calls of different kinds
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
2nd call
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
|
|
Test 5 - Execute - after oci_rollback
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
Rollback status is true
|
|
2nd call after oci_rollback
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
|
|
Test 6 - Execute - after successful 2nd query with new handle
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
Execute status is true
|
|
2nd call after successful execute
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
bool(false)
|
|
|
|
Test 7 - Execute - after successful 2nd query with same handle
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
Execute status is true
|
|
2nd call after successful execute
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
|
|
Test 8 - Execute - after unsuccessful 2nd query with new handle
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
|
|
Warning: oci_execute(): ORA-00904: %sREALLYNOTHERE%s in %sbug51291_1.php on line %d
|
|
Execute status is false
|
|
2nd call after unsuccessful execute
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904%sREALLYNOTHERE%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(30) "select reallynothere from dual"
|
|
}
|
|
|
|
Test 9 - Execute - after unsuccessful 2nd query with same handle
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904:%sDOESNOTEXIST%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(29) "select doesnotexist from dual"
|
|
}
|
|
|
|
Warning: oci_execute(): ORA-00904: %sREALLYNOTHERE%s in %sbug51291_1.php on line %d
|
|
Execute status is false
|
|
2nd call after unsuccessful execute
|
|
bool(false)
|
|
bool(false)
|
|
array(4) {
|
|
["code"]=>
|
|
int(904)
|
|
["message"]=>
|
|
string(%d) "ORA-00904%sREALLYNOTHERE%s"
|
|
["offset"]=>
|
|
int(%d)
|
|
["sqltext"]=>
|
|
string(30) "select reallynothere from dual"
|
|
}
|
|
===DONE===
|