1--TEST-- 2mysqli_stmt_error() 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifconnectfailure.inc'); 7?> 8--FILE-- 9<?php 10 require_once("connect.inc"); 11 12 require('table.inc'); 13 14 if (!$stmt = mysqli_stmt_init($link)) 15 printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 16 17 // properly initialized? 18 if ('' !== ($tmp = mysqli_stmt_error($stmt))) 19 printf("[004] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp); 20 21 if (mysqli_stmt_prepare($stmt, "SELECT i_do_not_exist_believe_me FROM test ORDER BY id")) 22 printf("[005] Statement should have failed!\n"); 23 24 // set after error server? 25 if ('' === ($tmp = mysqli_stmt_error($stmt))) 26 printf("[006] Expecting string/any non empty, got %s/%s\n", gettype($tmp), $tmp); 27 28 if (!mysqli_stmt_prepare($stmt, "SELECT id FROM test ORDER BY id")) 29 printf("[007] [%d] %s\n", mysqli_stmt_error($stmt), mysqli_stmt_error($stmt)); 30 31 // reset after error & success 32 if ('' !== ($tmp = mysqli_stmt_error($stmt))) 33 printf("[008] Expecting empty string, got %s/%s\n", gettype($tmp), $tmp); 34 35 mysqli_kill($link, mysqli_thread_id($link)); 36 37 if (true === ($tmp = mysqli_stmt_execute($stmt))) 38 printf("[009] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); 39 40 // set after client error 41 if ('' === ($tmp = mysqli_stmt_error($stmt))) 42 printf("[010] Expecting string/any non empty, got %s/%s\n", gettype($tmp), $tmp); 43 44 mysqli_stmt_close($stmt); 45 46 try { 47 mysqli_stmt_error($stmt); 48 } catch (Error $exception) { 49 echo $exception->getMessage() . "\n"; 50 } 51 52 mysqli_close($link); 53 print "done!"; 54?> 55--CLEAN-- 56<?php 57 require_once("clean_table.inc"); 58?> 59--EXPECT-- 60mysqli_stmt object is already closed 61done! 62