Vous pouvez utiliser Mysql LOAD DATA LOCAL INFILE syntaxe
LOAD DATA LOCAL INFILE '/path/to/file.txt'
INTO TABLE 'table1'
LINES TERMINATED BY '\n'
Pour cela, assurez-vous que Mysql
a accès à /path/to/file.txt
. De plus, l'utilisateur qui exécute la requête doit avoir FILE privilège.
Avec Pure PHP, c'est facile. Lisez le fichier, créez la requête, exécutez-la. Vous devez créer la requête afin de ne pas finir par boucler la requête, ce qui est lent.
$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);