Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command


Описание

Объектно-ориентированный стиль

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

Процедурный стиль

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


Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или 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.


Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Примеры

Пример #1 mysqli::set_local_infile_handler() example

Объектно-ориентированный стиль


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

Процедурный стиль


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

Результат выполнения данных примеров:


Input:
23,foo
42,bar

Output:
23,FOO
42,BAR

Смотрите также


Описание класса mysqli, примеры использования класса mysqli.

Описание на ru2.php.net
Описание на php.ru