Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

mysqli_set_local_infile_handler

MySQLi Funktionen

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

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


    Parameter-Liste:
NameBeschreibung
linkNur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
read_funcEine Callback-Funktion oder Objektmethode unter die folgenden Parameter:
 
NameBeschreibung
streamMmit der zugehörigen SQL-Befehle PHP-Stream INFILE
&bufferEin String Puffer, um die Eingabe in umgeschrieben speichern
buflenDie maximale Anzahl von Zeichen, die in dem Puffer gespeichert werden,
&errormsgWenn ein Fehler auftritt, können Sie eine Fehlermeldung in hier speichern
Die Callback-Funktion sollte die Anzahl der Zeichen in der buffer gespeichert oder einen negativen Wert zurück, wenn ein Fehler aufgetreten ist.

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

    Beschreibung:
Stellt Callback-Funktion für LOAD DATA LOCAL INFILE-Befehl
Die Rückrufe Aufgabe ist es, aus der Eingabe in der LOAD DATA LOCAL INFILE angegebene Datei zu lesen und sie in das Format LOAD DATA INFILE verstanden neu formatieren.
Die zurückgegebenen Daten braucht, um die in den LOAD DATA angegebenen Format


    Aktiv in Version:
(PHP 5, PHP 7)

    Siehe auch:
führt zum Löschen benutzerdefinierten Handler für Last lokalen infile Befehl
 

mysqli_set_local_infile_handler() - Beispiel: Objektorientierter Stil

(mysqli::set_local_infile_handler)


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


Ausgabe:
Input:
23,foo
42,bar

Output:
23,FOO
42,BAR
mysqli_set_local_infile_handler() - Beispiel 2: Prozeduraler Stil

(mysqli::set_local_infile_handler)


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


Ausgabe:
Input:
23,foo
42,bar

Output:
23,FOO
42,BAR
MySQLi Funktionen