PHP Doku:: Set callback function for LOAD DATA LOCAL INFILE command - mysqli.set-local-infile-handler.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMySQL Improved ExtensionThe MySQLi classmysqli::set_local_infile_handler -- mysqli_set_local_infile_handler

Ein Service von Reinhard Neidl - Webprogrammierung.

The MySQLi class

<<mysqli::set_local_infile_default -- mysqli_set_local_infile_default

mysqli->sqlstate -- mysqli_sqlstate>>

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handlerSet callback function for LOAD DATA LOCAL INFILE command

Beschreibung

Objektorientierter Stil

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

Prozeduraler Stil

bool mysqli_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 specified 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 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.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 mysqli::set_local_infile_handler() example

Objektorientierter Stil

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

Prozeduraler Stil

<?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

Siehe auch


Keine BenutzerBeiträge.
- Beiträge aktualisieren...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)