{site_name}

{site_name}

🌜 搜索

mysqli_set_local_infile_handler() 是一个 PH

php 𝄐 0
phpMySQLi手册
mysqli_set_local_infile_handler() 是一个 PHP 函数,用于设置自定义的本地数据文件处理函数。当使用 MySQL LOAD DATA LOCAL INFILE 语句从本地文件加载数据时,该函数会被调用来获取文件内容并将其传输给 MySQL 服务器。

以下是该函数的参数和示例:

参数:
- $mysqli:mysqli_connect() 函数返回的 mysqli 对象。
- $read_func:自定义的读取本地数据文件内容的回调函数。该函数需要返回读取的字节数。
- $filename:要读取的本地数据文件名。

示例:

<?php
function read_file($stream, &$buf) {
$buf = fgets($stream);
return strlen($buf);
}

$mysqli = mysqli_connect("localhost", "user", "password", "database");
mysqli_set_local_infile_handler($mysqli, "read_file");

$query = "LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE mytable FIELDS TERMINATED BY ','";
$result = mysqli_query($mysqli, $query);

if (!$result) {
die(mysqli_error($mysqli));
}

mysqli_close($mysqli);
?>


在上面的示例中,我们定义了一个自定义的读取本地数据文件内容的回调函数 read_file(),它使用 fgets() 函数从文件流中读取每行数据,并将其保存在 $buf 变量中。然后,我们使用 mysqli_set_local_infile_handler() 将该函数注册为默认的本地数据文件处理函数。

接下来,我们使用 LOAD DATA LOCAL INFILE 语句将 data.csv 文件中的数据加载到 mytable 表中,并通过 mysqli_query() 函数执行查询。如果查询失败,则使用 mysqli_error() 函数输出错误信息。最后,我们关闭与数据库的连接。