Set callback function for LOAD DATA LOCAL INFILE command

# mysqli::set_local_infile_handler

# mysqli_set_local_infile_handler

(PHP 5, PHP 7)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command

### Descrierea

Stil obiect-orientat

mysqli::set_local_infile_handler ( mysqli `$link` , callable `$read_func` ) : bool

Stil procedural

mysqli_set_local_infile_handler ( mysqli `$link` , callable `$read_func` ) : bool

Set callback function for LOAD DATA LOCAL INFILE command

The callbacks task is to read input from the file specified in the LOAD DATA LOCAL INFILE and to reformat it into the format understood by LOAD DATA INFILE.

The returned data needs to match the format specified in the LOAD DATA

### Parametri

`link`

  Numai stilul procedural: Un identificator al legăturii întors de mysqli_connect() sau mysqli_init()

`read_func`

  A callback function or object method taking the following parameters:

  `stream`

    A PHP stream associated with the SQL commands INFILE

  `&buffer`

    A string buffer to store the rewritten input into

  `buflen`

    The maximum number of characters to be stored in the buffer

  `&errormsg`

    If an error occurs you can store an error message in here

The callback function should return the number of characters stored in the `buffer` or a negative value if an error occurred.

### Valorile întoarse

Întoarce valoarea `TRUE` în cazul succesului sau `FALSE` în cazul eșecului.

### Exemple

Example #1 mysqli::set_local_infile_handler() example

Stil obiect-orientat

`<?php
$db = mysqli_init();
$db->real_connect("localhost","root","","test");
function callme($stream, &$buffer, $buflen, &$errmsg)
{
$buffer = fgets($stream);
echo $buffer;
// convert to upper case and replace "," delimiter with [TAB]
$buffer = strtoupper(str_replace(",", "\t", $buffer));
return strlen($buffer);
}
echo "Input:\n";
$db->set_local_infile_handler("callme");
$db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
$db->set_local_infile_default();
$res = $db->query("SELECT * FROM t1");
echo "\nResult:\n";
while ($row = $res->fetch_assoc()) {
echo join(",", $row)."\n";
}
?>`

Stil procedural

`<?php
$db = mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
function callme($stream, &$buffer, $buflen, &$errmsg)
{
$buffer = fgets($stream);
echo $buffer;
// convert to upper case and replace "," delimiter with [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";
}
?>`

Exemplele de mai sus vor afișa:

    Input:
    23,foo
    42,bar

    Output:
    23,FOO
    42,BAR

### A se vedea și

- mysqli_set_local_infile_default() - Unsets user defined handler for load local infile command