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
Descrizione
Stile orientato agli oggetti
Stile procedurale
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
Elenco dei parametri
-
link -
Solo nello stile procedurale: un identificatore restituito da mysqli_connect() o 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.
Valori restituiti
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Esempi
Example #1 mysqli::set_local_infile_handler() example
Stile orientato agli oggetti
<?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";
}
?>
Stile procedurale
<?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";
}
?>
I precedenti esempi visualizzeranno:
Input: 23,foo 42,bar Output: 23,FOO 42,BAR
Vedere anche:
- mysqli_set_local_infile_default() - Unsets user defined handler for load local infile command
