@Jeux_Onmobil

Как можно доставать данные из текстового файла и записывать в БД?

Есть форма, где находятся: 1) Текстовое поле, 2) Поле input file, 3) Кнопка
Пользователь вписывает в №1 любое слово, в №2 загружает файл.txt и нажимает на кнопку. Надо сделать так, чтобы слова из файла записывались в столбец БД "name", а слово из №1 в столбец "home" Есть код, он загружает по одному слову.
session_start();
require('../connection.php');

if (isset($_POST['download'])){
    $name = $_POST['name'];
    $home= $_POST['home'];
    $query = "INSERT INTO `table` (`name`, `home`) VALUES ('$name', '$home')";
    $result = mysqli_query($connection,$query);
}

header('Location: ../index.php');

Можно это сделать на php?
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Но в целом, конечно, если делать по уму, то новичку не справиться.
Да и не всякий середнячок осилит, чего уж там.
$file = file($_FILES['name']['tmp_file'], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$query = "INSERT INTO `table` (`name`, `home`) VALUES (?, ?)";
$stmt = $connection->prepare($query);
$stmt->bind_param("ss", $name, $home);

$connection->begin_transaction();
foreach($file as $home) {
    $stmt->execute();
}
$connection->commit();


Файл надо читать, удаляя переводы строк (и заодно пустые строки).
Для запросов в которых используются переменные, надо всегда использовать prepare.
Вставки, которые выполняются в цикле надо заключить в транакцию. Для скорости и вообще.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы