Du kan använda Mysql LOAD DATA LOCAL INFILE syntax
LOAD DATA LOCAL INFILE '/path/to/file.txt'
INTO TABLE 'table1'
LINES TERMINATED BY '\n'
För detta, se till att Mysql
har tillgång till /path/to/file.txt
. Användaren som kör frågan måste också ha FILE privilegium.
Med Pure PHP är det enkelt. Läs filen, bygg frågan, kör den. Du måste bygga frågan så att du inte hamnar i en loop-fråga som är långsam.
$data = file("/path/to/file.txt", FILE_SKIP_EMPTY_LINES);
// make sure you have valid database connection prior to this point.
// otherwise mysql_real_escape_string won't work
$values = "('". implode("'), ('", array_map('mysql_real_escape_string', $data)). "')";
$query = "INSERT INTO `TABLE1` (`COLUMN1`) VALUES $values";
// Now just execute the query once.
mysql_query($query);