mysqli::set_local_infile_default
mysqli->sqlstate
MySQLi
PHP Manual

# mysqli::set_local_infile_handler

# mysqli_set_local_infile_handler

(PHP 5)

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

### Beschreibung

bool mysqli_set_local_infile_handler ( mysqli `$link` , callback `$read_func` )

Object oriented style (method)

mysqli
bool set_local_infile_handler ( mysqli `$link` , callback `$read_func` )

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 speficied in the LOAD DATA

### Parameter-Liste

`link`

  Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

`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 occures 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 occured.

### Rückgabewerte

Gibt bei Erfolg `TRUE` zurück, im Fehlerfall `FALSE`.

### Beispiele

Beispiel #1 Object oriented style

`<?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";
}
?>`

Beispiel #2 Procedural style

`<?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";
}
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Input:
    23,foo
    42,bar

    Output:
    23,FOO
    42,BAR

### Siehe auch

- mysqli_set_local_infile_default()

mysqli::set_local_infile_default
mysqli->sqlstate
MySQLi
PHP Manual