1
0
mirror of https://github.com/php/php-src.git synced 2026-04-23 07:58:20 +02:00
Files
archived-php-src/ext/oci8/tests/bug51291_1.phpt
T
Gabriel Caruso fef879a2d6 Use bool instead of boolean while throwing a type error
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.
2018-02-04 23:09:40 +01:00

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===