Copyright 1997-2012 the PHP Documentation Group.
mysqli::set_local_infile_handler
mysqli_set_local_infile_handler
Set callback function for LOAD DATA LOCAL INFILE command
Description
Object oriented style
bool mysqli::set_local_infile_handler(mysqli link,
callable read_func);Procedural style
bool mysqli_set_local_infile_handler(mysqli link,
callable 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 specified in the
LOAD DATA
Parameters
link
Procedural style only: A link identifier returned by
mysqli_connect
or
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.
Return Values
Returns
TRUE
on success or
FALSE
on failure.
Examples
Example 3.67. mysqli::set_local_infile_handler
example
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";
}
?>
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";
}
?>
The above examples will output:
Input: 23,foo 42,bar Output: 23,FOO 42,BAR
See Also
mysqli_set_local_infile_default
|

User Comments
Add your own comment.