1--TEST-- 2mysqli_set_local_infile_handler() - do not use the file pointer 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6require_once('skipifemb.inc'); 7require_once('skipifconnectfailure.inc'); 8 9if (!function_exists('mysqli_set_local_infile_handler')) 10 die("skip - function not available."); 11 12require_once('connect.inc'); 13if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 14 die("skip Cannot connect to MySQL"); 15 16include_once("local_infile_tools.inc"); 17if ($msg = check_local_infile_support($link, $engine)) 18 die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error)); 19 20mysqli_close($link); 21?> 22--INI-- 23mysqli.allow_local_infile=1 24--FILE-- 25<?php 26 require_once('connect.inc'); 27 require_once('local_infile_tools.inc'); 28 require_once('table.inc'); 29 30 function callback_unregister($fp, &$buffer, $buflen, &$error) { 31 global $link; 32 static $invocation = 0; 33 34 printf("Callback: %d\n", $invocation++); 35 flush(); 36 if (is_resource($fp)) 37 fclose($fp); 38 $buffer = "1;'a';\n"; 39 if ($invocation > 10) 40 return 0; 41 42 mysqli_set_local_infile_default($link); 43 return strlen($buffer); 44 } 45 46 $file = create_standard_csv(1); 47 $expected = array(array('id' => 1, 'label' => 'a')); 48 try_handler(20, $link, $file, 'callback_unregister', $expected); 49 50 mysqli_close($link); 51 print "done!"; 52?> 53--CLEAN-- 54<?php 55 require_once("clean_table.inc"); 56?> 57--EXPECTF-- 58Callback set to 'callback_unregister' 59Callback: 0 60 61Warning: mysqli_query(): File handle closed in %s on line %d 62[022] LOAD DATA failed, [2000] File handle closed 63[024/0] [0] '' 64done! 65