1--TEST-- 2mysqli_debug() 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifemb.inc'); 7require_once('skipifconnectfailure.inc'); 8 9if (!function_exists('mysqli_debug')) 10 die("skip: mysqli_debug() not available"); 11 12if (!defined('MYSQLI_DEBUG_TRACE_ENABLED')) 13 die("skip: can't say for sure if mysqli_debug works"); 14 15if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED) 16 die("skip: debug functionality not enabled"); 17?> 18--FILE-- 19<?php 20 require_once('connect.inc');; 21 22 if (NULL !== ($tmp = @mysqli_debug())) 23 printf("[001] Expecting NULL/NULL, got %s/%s\n", gettype($tmp), $tmp); 24 25 // NOTE: documentation is not clear on this: function always return NULL or TRUE 26 if (true !== ($tmp = mysqli_debug(sprintf('d:t:O,%s/mysqli_debug_phpt.trace', sys_get_temp_dir())))) 27 printf("[002] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp); 28 29 if ($IS_MYSQLND) { 30 // let's make this mysqlnd only - for libmysql we need debug installation 31 32 // table.inc will create a database connection and run some SQL queries, therefore 33 // the debug file should have entries 34 require_once('table.inc'); 35 36 clearstatcache(); 37 $trace_file = sprintf('%s/mysqli_debug_phpt.trace', sys_get_temp_dir()); 38 if (!file_exists($trace_file)) 39 printf("[003] Trace file '%s' has not been created\n", $trace_file); 40 if (filesize($trace_file) < 50) 41 printf("[004] Trace file '%s' is very small. filesize() reports only %d bytes. Please check.\n", 42 $trace_file, 43 filesize($trace_file)); 44 45 // will mysqli_debug() mind if the trace file gets removed? 46 unlink($trace_file); 47 clearstatcache(); 48 49 if (!$res = mysqli_query($link, 'SELECT * FROM test')) 50 printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 51 else 52 mysqli_free_result($res); 53 54 mysqli_close($link); 55 56 clearstatcache(); 57 if (!file_exists($trace_file)) 58 printf("[006] Trace file '%s' does not exist\n", $trace_file); 59 unlink($trace_file); 60 } 61 62 print "done!"; 63?> 64--CLEAN-- 65<?php 66 require_once("clean_table.inc"); 67?> 68--EXPECTF-- 69done%s 70