PHP mysqli_set_local_infile_handler MySQLi 函数
-
定义和用法
mysqli_set_local_infile_handler - 设置 LOAD DATA LOCAL INFILE 命令的回调函数 -
版本支持
PHP4 PHP5 PHP7 不支持 支持 支持 -
语法
mysqli_set_local_infile_handler ( mysqli $link , callable $read_func )
设置 LOAD DATA LOCAL INFILE 命令的回调函数 。回调函数的作用是读取 LOAD DATA LOCAL INFILE 命令指定的文件, 并且将其重新格式化。 所用的格式必须是 LOAD DATA INFILE 命令可以识别的格式。 返回的数据需要和 LOAD DATA 命令指定的格式匹配。 -
参数
参数 必需的 描述 link 是 由mysqli_connect() 或 mysqli_init() 返回的链接标识。 read_func 是 一个回调函数,或者对象的方法,它需要接收以下参数: - stream - 和 SQL 命令中的 INFILE 关联的 PHP 流
- &buffer - 用来保存输入数据重写之后数据的字符串缓冲区
- buflen - 缓冲区中存储的最大的字符数量
- &errormsg - 如果发生错误,可以用这个变量存储一些错误信息
-
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。 -
示例
<?php $db = mysqli_init(); mysqli_real_connect($db, "localhost","root","","test"); function callme($stream, &$buffer, $buflen, &$errmsg) { $buffer = fgets($stream); echo $buffer; // 将字符串替换成大写,并且将 "," 分隔符替换成 [TAB] $buffer = strtoupper(str_replace(",", "\t", $buffer)); return strlen($buffer); } echo "Input:\n"; mysqli_set_local_infile_handler($db, "callme"); mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1"); mysqli_set_local_infile_default($db); $res = mysqli_query($db, "SELECT * FROM t1"); echo "\nResult:\n"; while ($row = mysqli_fetch_assoc($res)) { echo join(",", $row)."\n"; }
-
相关函数
mysqli_set_local_infile_default() - 取消用户指定的回调函数