У меня есть папка с около 10.000 текстовыми файлами. Я хотел бы импортировать эти файлы в таблицу MySQL с двумя столбцами. Для каждой строки я хотел бы иметь заголовок текстового файла (например, 1234.txt) в одном столбце и содержимое файла в другом столбце. Я могу использовать PHP. Как бы вы посоветовали мне это сделать?Импорт нескольких текстовых файлов и их заголовков в MySQL
ответ
Вы можете попробовать что-то вроде следующего, приведенный ниже код будет проходить через все текстовые файлы в каталоге и добавлять имя файла каждого файла в качестве заголовка и содержимого в виде содержимого в базу данных MySQL.
<?php
$size = "";
//Change "MyFolder" with the path and name of the directory where the .txt files are located.
$dir = "MyFolder";
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file == '.' || $file == '..') continue;
$myFile = "$dir/$file";
$fh = fopen($myFile, 'r');
$size = filesize($myFile);
if ($size > 0) {
$content = fread($fh, $size);
$title = $file;
echo $title."</br>";
}
$con=mysqli_connect("HostName","Username","Password","Database");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO table_name (Title, Content) VALUES ('$title', '$content')");
mysqli_close($con);
fclose($fh);
}
closedir($handle);
}
?>
Большое спасибо за ответ. Я просто тестировал его, и он, похоже, не работает. У вас есть идея, почему? Нет ошибки, ничего нет, она просто ничего не загружает в таблице. Папка «myfolder» со всеми текстовыми документами находится в той же папке, что и скрипт php. – user1029296
Плохо, это была проблема с каталогом. Это сработало! Спасибо! – user1029296
Нет проблем, это может быть не лучшее решение, но я надеюсь, что это поможет. – Malcolm
Вы можете (аb) использовать LOAD DATA INFILE
, чтобы загрузить весь файл в столбце. «Трюк» просто, чтобы обеспечить последовательность символов, которая не присутствует в файле в виде прекращения линии/поля:
mysql> create table tbl(fname CHAR(255), data TEXT);
Query OK, 0 rows affected (0.35 sec)
mysql> LOAD DATA INFILE '/tmp/demo.txt' INTO TABLE tbl
FIELDS TERMINATED BY 'XXX' LINES TERMINATED BY 'YYY'
(data) SET fname = 'demo.csv';
Query OK, 1 row affected (0.00 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from tbl;
+----------+--------------------------------------------------------------------------------------------------+
| fname | data |
+----------+--------------------------------------------------------------------------------------------------+
| demo.csv | Date, Amount, Name
2013-01-01, 1000, "Apple"
2013-01-02, 500, "Orange"
2013-01-03, 250, "Prune"
|
+----------+--------------------------------------------------------------------------------------------------+
1 rows in set (0.00 sec)
Если для того, чтобы загрузить все файлы в папке, вы должны назвать это заявление из цикла на вашем языке хоста Можно даже сделать это с помощью простого скрипта:
for i in *.txt; do
echo "LOAD DATA INFILE '$i' INTO TABLE tbl
FIELDS TERMINATED BY 'XXX' LINES TERMINATED BY 'YYY'
(data) SET fname = '$i';";
done
| mysql -p -u user_name -h host_name db_name
- 1. Импорт текстовых файлов в MySQL
- 2. Импорт из нескольких текстовых файлов в Solr
- 3. Импорт нескольких текстовых файлов в excel
- 4. Импорт нескольких текстовых файлов в Excel
- 5. Импорт нескольких текстовых файлов в Matlab
- 6. Импорт нескольких текстовых файлов на Matlab
- 7. Импорт нескольких текстовых файлов Excel VBA
- 8. Импорт и анализ нескольких текстовых файлов в один XLS?
- 9. Импорт нескольких файлов автоматические в MySql
- 10. Импорт текстовых файлов в R
- 11. Импорт текстовых файлов в php
- 12. Python: импорт нескольких файлов txt и преобразование их в списки
- 13. Импорт нескольких файлов Excel в MySQL Таблица
- 14. Анализ нескольких текстовых файлов и их восстановление до заданного шаблона
- 15. Импорт данных из нескольких заголовков
- 16. Вставка нескольких текстовых файлов
- 17. Импорт данных из нескольких текстовых файлов в Excel VBA
- 18. Импорт нескольких текстовых файлов в несколько таблиц с использованием ssis
- 19. Импорт нескольких текстовых/CSV-файлов в один рабочий лист excel
- 20. Импорт текстовых файлов в IOS App
- 21. Visual Basic: импорт нескольких текстовых файлов на несколько листов
- 22. Импорт текстовых файлов по блокам?
- 23. Импорт нескольких файлов сразу
- 24. Python: слияние нескольких текстовых файлов
- 25. Импорт текстовых файлов фиксированной ширины в Mysql с помощью PHP
- 26. Чтение нескольких текстовых файлов
- 27. Импорт текстовых файлов с переменными в python
- 28. Импорт текстовых файлов с запятыми в Excel
- 29. Слияние текстовых файлов на основе заголовков.
- 30. Импорт нескольких файлов в таблицу
Вообще-то я бы посоветовал держать файлы в файловой системе, а не в базе данных – Anigel
Спасибо за предложение. Мне нужно обработать текст скриптом, доступным только мне в MySQL. Поэтому мне нужно найти способ импорта файлов. – user1029296
Здесь требуется некоторое разъяснение. Во-первых, какова длина вашего самого большого текстового файла? Вы должны знать это, чтобы иметь возможность выбрать соответствующий тип данных, например 'VARCHAR (255)', 'TEXT',' MEDIUMTEXT' и т. Д. Во-вторых, как ваш «скрипт» использует эту таблицу? Использует ли он поиск «FULLTEXT»? Требуется ли указатель в текстовом столбце? В-третьих, ваш текст записан в ASCII, Latin-1, UTF-8 или что? –