(PHP 5, PHP 7)
mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command
Nesne yönelimli kullanım
Yordamsal kullanım
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
bağlantı
Sadece yordamsal tarz: mysqli_connect() veya mysqli_init() işlevinden dönen bir bağlantı tanıtıcısı.
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.
Başarı durumunda TRUE
, başarısızlık durumunda FALSE
döner.
Örnek 1 mysqli::set_local_infile_handler() example
Nesne yönelimli kullanım
<?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";
}
?>
Yordamsal kullanım
<?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";
}
?>
Yukarıdaki örneklerin çıktısı:
Input: 23,foo 42,bar Output: 23,FOO 42,BAR