php-src/ext/mysqli/tests/mysqli_debug.phpt
Andrey Hristov caf3e9c3f1 Fixed a bunch of bugs reported in
Bug #44352 mysqli_connect_error() false negative for host errors
From now on the mysqli object doesn't have that magic properties, like
error, which were readable but not visible through isset(), property_exists()
and var_dump(). All other ext/mysqli classes were fixed too.
Now it will be easier to debug mysqli based applications.
2008-03-18 16:57:31 +00:00

65 lines
1.9 KiB
PHP

--TEST--
mysqli_debug()
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
if (!function_exists('mysqli_debug'))
die("skip: mysqli_debug() not available");
if (!defined('MYSQLI_DEGBUG_TRACE_ENABLED'))
die("skip: can't say for sure if mysqli_debug works");
if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
die("skip: debug functionality not enabled");
?>
--FILE--
<?php
require_once('connect.inc');;
if (NULL !== ($tmp = @mysqli_debug()))
printf("[001] Expecting NULL/NULL, got %s/%s\n", gettype($tmp), $tmp);
// NOTE: documentation is not clear on this: function always return NULL or TRUE
if (true !== ($tmp = mysqli_debug(sprintf('d:t:O,%s/mysqli_debug_phpt.trace', sys_get_temp_dir()))))
printf("[002] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
if ($IS_MYSQLND) {
// let's make this mysqlnd only - for libmysql we need debug installation
// table.inc will create a database connection and run some SQL queries, therefore
// the debug file should have entries
require_once('table.inc');
clearstatcache();
$trace_file = sprintf('%s/mysqli_debug_phpt.trace', sys_get_temp_dir());
if (!file_exists($trace_file))
printf("[003] Trace file '%s' has not been created\n", $trace_file);
if (filesize($trace_file) < 50)
printf("[004] Trace file '%s' is very small. filesize() reports only %d bytes. Please check.\n",
$trace_file,
filesize($trace_file));
// will mysqli_debug() mind if the trace file gets removed?
unlink($trace_file);
clearstatcache();
if (!$res = mysqli_query($link, 'SELECT * FROM test'))
printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
else
mysqli_free_result($res);
mysqli_close($link);
clearstatcache();
if (!file_exists($trace_file))
printf("[006] Trace file '%s' does not exist\n", $trace_file);
unlink($trace_file);
}
print "done!";
?>
--EXPECTF--
done%s