Load Data Infile サンプルスクリプト

[php]
$tmp_file_path = $_FILES[‘upfile’][‘tmp_name’];
if ($tmp_file_path == “”) {
die(“ファイルが指定されていません”);
}
// DB Connect
gfDBConn($conn);
$handle = fopen($tmp_file_path, “r”);
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$pieces = explode(“,”, $buffer);
if ($pieces[1] != “” ) {
// DB Insert
fInsStockMst($pieces[1] ,$pieces[3] ,$pieces[2]);
}
}
fclose($handle);
}
// MySQL 切断
mysql_close($conn);
print(“完了
もどる“);
// DB接続
function gfDBConn(&$conn) {
global $pcDBname,$pcMySqlUser,$pcMySqlPass,$pcDatenbankname;
$conn = mysql_connect($pcDBname,$pcMySqlUser,$pcMySqlPass);
mysql_select_db($pcDatenbankname,$conn);
}
// 登録処理
function fInsStockMst($stock_cd ,$stock_nm ,$market_cd) {
global $conn;
$sSQL = “”;
$sSQL .= “insert into stock_mst (“;
$sSQL .= ” stock_cd,”;
$sSQL .= ” stock_nm,”;
$sSQL .= ” market_cd,”;
$sSQL .= ” upddate,”;
$sSQL .= ” insdate”;
$sSQL .= “) values (“;
$sSQL .= ” ‘”.gfFixUpStr($stock_cd).”‘,”;
$sSQL .= ” ‘”.gfFixUpStr($stock_nm).”‘,”;
$sSQL .= ” ‘”.gfFixUpStr($market_cd).”‘,”;
$sSQL .= “now(),”;
$sSQL .= “now()”;
$sSQL .= “) “;
$sSQL .= “ON DUPLICATE KEY UPDATE “;
$sSQL .= ” market_cd4 = if(market_cd3 <>
”,'”.gfFixUpStr($market_cd).”‘,”), “;
$sSQL .= ” market_cd3 = if(market_cd2 <>
”,'”.gfFixUpStr($market_cd).”‘,”), “;
$sSQL .= ” market_cd2 = if(market_cd <> ”,'”.gfFixUpStr($market_cd).”‘,”)
“;
$res = gfGetDBRs($sSQL, $conn);
}
// 入力を表示文字列からDB格納型へ
function gfFixUpStr($getstr,$rnflg=0,$maxlen=0) {
// サニタイズやらなにやら
$str = $getstr;
return $str;
}
[php]

参照
http://q.hatena.ne.jp/1144055939