(PHP 5)
mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — LOAD DATA LOCAL INFILE コマンド用のコールバック関数を設定する
Object oriented style (method)
LOAD DATA LOCAL INFILE コマンド用のコールバック関数を設定します。
コールバック関数では、LOAD DATA LOCAL INFILE で指定したファイルの内容を読み込んで、それを LOAD DATA INFILE で使用できる形式に変換します。
返されるデータは、 LOAD DATA で指定した書式にマッチする必要があります。
手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。
以下のパラメータを受け取るコールバック関数あるいはオブジェクトのメソッド。
SQL の INFILE コマンドに関連付けられた PHP ストリーム
入力を書き換えた内容を保存する文字列バッファ
バッファに格納する最大文字数
エラーが発生した場合にエラーメッセージを保存する場所
コールバック関数の返り値は、buffer に書き込んだ文字数となります。エラー発生時は負の値を返します。
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例1 オブジェクト指向型
<?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";
  }
?>
例2 手続き型
<?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
NPO法人の設立(東京・大阪) 東京や大阪などNPO法人を設立する場合の注意点等を紹介
不動産・賃貸・マンション 不動産・賃貸・マンションに関する用語集です。
堺市の入院・内科大阪の賃貸探し 大阪で賃貸を探している方は大阪ホームへ
東京の賃貸マンション 東京で賃貸を探すなら東京賃貸.orgへ