文字檔每行一筆,欄位以逗號分隔:
aaa,bbb,ccc,ddd,eee
fff,ggg,hhh,iii,jjj,kkk
儲存為 yourdate.txt。
<?php
$hostname = "localhost";
$username = "yourname";
$password = "yourpwd";
$dbname = "yourdb";
$conn = mysql_connect($hostname, $username, $password);
mysql_select_db($dbname, $conn);
$lines = file("yourdate.txt");
foreach ($lines as $line) {
$fields = explode(",", trim($line));
$sql = sprintf(
"INSERT INTO `ip` VALUES ('%s','%s','%s','%s','%s')",
mysql_real_escape_string($fields[0]),
mysql_real_escape_string($fields[1]),
mysql_real_escape_string($fields[2]),
mysql_real_escape_string($fields[3]),
mysql_real_escape_string($fields[4])
);
mysql_query($sql, $conn);
}
mysql_close($conn);
echo "ok!";
?>
缺點:逐行 INSERT、PHP 迴圈開銷大、無交易控制、易超時。僅適合萬筆以內。
LOAD DATA INFILE '/path/yourdate.txt'
INTO TABLE `ip`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES; -- 若有標題行
FILE 權限僅授信任帳號secure_file_priv 目錄下(MySQL 5.6+ 預設限制)mysqlimport 指令工具(LOAD DATA 的命令列封裝)