mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5, PHP 7)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler锟斤拷锟斤拷 LOAD DATA LOCAL INFILE 锟斤拷锟斤拷幕氐锟斤拷锟斤拷锟�

说锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟�

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

锟斤拷锟教伙拷锟斤拷锟�

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

锟斤拷锟斤拷 LOAD DATA LOCAL INFILE 锟斤拷锟斤拷幕氐锟斤拷锟斤拷锟�

锟截碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟角讹拷取 LOAD DATA LOCAL INFILE 锟斤拷锟斤拷指锟斤拷锟斤拷锟侥硷拷锟斤拷 锟斤拷锟揭斤拷锟斤拷锟斤拷锟铰革拷式锟斤拷锟斤拷 锟斤拷锟矫的革拷式锟斤拷锟斤拷锟斤拷 LOAD DATA INFILE 锟斤拷锟斤拷锟斤拷锟绞讹拷锟侥革拷式锟斤拷

锟斤拷锟截碉拷锟斤拷锟斤拷锟斤拷要锟斤拷 LOAD DATA 锟斤拷锟斤拷指锟斤拷锟侥革拷式匹锟戒。

锟斤拷锟斤拷

link

锟斤拷锟皆癸拷锟教伙拷锟斤拷式锟斤拷锟斤拷mysqli_connect() 锟斤拷 mysqli_init() 锟斤拷锟截碉拷锟斤拷锟接憋拷识锟斤拷

read_func

一锟斤拷锟截碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟竭讹拷锟斤拷姆锟斤拷锟斤拷锟斤拷锟斤拷锟揭拷锟斤拷锟斤拷锟斤拷虏锟斤拷锟斤拷锟�

stream

锟斤拷 SQL 锟斤拷锟斤拷锟叫碉拷 INFILE 锟斤拷锟斤拷锟斤拷 PHP 锟斤拷

&buffer

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷写之锟斤拷锟斤拷锟捷碉拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷

buflen

锟斤拷锟斤拷锟斤拷锟叫存储锟斤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷

&errormsg

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷螅锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟芥储一些锟斤拷锟斤拷锟斤拷息

锟斤拷锟斤拷锟斤拷锟缴癸拷锟斤拷锟斤拷氐锟斤拷锟斤拷锟斤拷锟揭拷锟斤拷锟� buffer 锟叫存储锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟绞э拷埽锟� 锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷

锟斤拷锟斤拷值

锟缴癸拷时锟斤拷锟斤拷 TRUE锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE锟斤拷

锟斤拷锟斤拷

Example #1 mysqli::set_local_infile_handler() 锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟�

<?php
  $db 
mysqli_init();
  
$db->real_connect("localhost","root","","test");

  function 
callme($stream, &$buffer$buflen, &$errmsg)
  {
    
$buffer fgets($stream);

    echo 
$buffer;

    
// 锟斤拷锟街凤拷锟斤拷锟芥换锟缴达拷写锟斤拷锟斤拷锟揭斤拷 "," 锟街革拷锟斤拷锟芥换锟斤拷 [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";
  }
?>

锟斤拷锟教伙拷锟斤拷锟�

<?php
  $db 
mysqli_init();
  
mysqli_real_connect($db"localhost","root","","test");

  function 
callme($stream, &$buffer$buflen, &$errmsg)
  {
    
$buffer fgets($stream);

    echo 
$buffer;

    
// 锟斤拷锟街凤拷锟斤拷锟芥换锟缴达拷写锟斤拷锟斤拷锟揭斤拷 "," 锟街革拷锟斤拷锟芥换锟斤拷 [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";
  }
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

Input:
23,foo
42,bar

Output:
23,FOO
42,BAR

锟轿硷拷