Получить текст с txt файла и вставить в таблицу sql | PHP

Привет, вопрос такой, есть txt файл в котором есть пароли и логины в таком формате:

my_login:my_pass
my_login2:my_pass2

Мне надо их вставить в таблицу SQL, вот в таком ввиде:

введите сюда описание изображения

Как это реализовать в PHP?


Ответы (3 шт):

Автор решения: Hleb Ischenko

Можно один раз в phpmyadmin запустить такую штуку и всё загрузишь за пару секунд LOAD DATA INFILE '/Users/is_hleb/Desktop/RU.txt' INTO TABLE passwords_logins CHARACTER SET utf8mb4 FIELDS TERMINATED BY ":" LINES TERMINATED BY '\n';

→ Ссылка
Автор решения: pgood

Можно использовать подготовленный запрос mysqli и прочитать логины и пароли функцией file сразу в массив строк.

$mysqli = new mysqli("example.com", "user", "password", "database");
$stmt = $mysqli->prepare("INSERT INTO passwords_table(`login`, `passsword`) VALUES (?, ?)");
$stmt->bind_param("ss", $login, $pass);

$arPasswords = file('passwords.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($arPasswords as $value){
    list($login, $pass) = explode(':', $value);
    $stmt->execute();
}
→ Ссылка
Автор решения: kamazz

Всем спасибо, но я уже сам разобрался вот код:

if(!empty($_FILES)){
move_uploaded_file($_FILES['file']['tmp_name'], 'files/'.$_FILES['file']['name']);



$filename = 'files/'.$_FILES['file']['name'];

if ($file = fopen($filename, "r")) {
    $usernames = [];
    $passwords = [];

    while (!feof($file)) {
        $line = fgets($file);
        [$username, $password] = explode(':', $line);
        $usernames[] = $username;
        $passwords[] = $password;
    }


    fclose($file);
}
$lines = count(file($filename));
for ($i=0; $i < $lines; $i++) {
    $sql = "INSERT INTO `goodsinst` (login, password) VALUES ('$usernames[$i]', '$passwords[$i]')";
    mysqli_query($conn, $sql);
}
mysqli_close($conn);








unlink('files/'.$_FILES['file']['name']);
$success = 'Успешно!';

}

→ Ссылка