IMPORT ALL CSV FILE TO MYSQL DATABASE [дубликат]

Попробуйте это

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query('SELECT * FROM Users WHERE UserName LIKE $username');

if($result){
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'];
}
}
11
задан Suit Boy Apps 5 November 2015 в 00:00
поделиться

6 ответов

Я изменил сценарий Тома, чтобы решить несколько проблем, с которыми столкнулся

#!/bin/bash

for f in *.csv
do
    mysql -e "load data local infile '"$f"' into table myTable fields TERMINATED BY ',' LINES TERMINATED BY '\n'"  -u myUser--password=myPassword fmeter --local-infile
done
  1. load data local infile вместо load data infile: [fайл для загрузки был локальным для сервера mysql]
  2. Добавлены разделители-переключатели для соответствия моим данным.
  3. --local-infile для активированного локального режима загрузки данных на клиенте.
2
ответ дан Abhijeet Apsunde 27 August 2018 в 23:25
поделиться

Используйте сценарий оболочки следующим образом:

#!/usr/bin/env bash
cd yourdirectory
for f in *.csv
do
        mysql -e "USE yourDatabase LOAD DATA LOCAL INFILE '"$f"'INTO TABLE yourtable"
done
12
ответ дан nazar554 27 August 2018 в 23:25
поделиться

Для вас есть небольшой скрипт PHP:

#!/usr/bin/php
<?
mysql_connect('localhost','root','root'); // MAMP defaults
mysql_select_db('yourdatabase');
$files = glob('*.csv');
foreach($files as $file){
    mysql_query("LOAD DATA INFILE '".$file."' INTO TABLE yourtable");
}

См. руководство по MySQL для параметров LOAD DATA INFILE , которые соответствуют вашим документам.

8
ответ дан Noodles 27 August 2018 в 23:25
поделиться

@hlosukwakha вы хотите использовать mysqlimport. это ищет таблицу, названную как файл. используйте mysqlimport -help, чтобы найти правильные параметры, но они в основном идентичны mysql

0
ответ дан Oskar Must 27 August 2018 в 23:25
поделиться

Вы можете использовать сценарий оболочки для циклического прохождения файлов (предполагается, что они находятся в текущем каталоге):

#!/bin/bash

for f in *.csv
do
    mysql -e "load data infile '"$f"' into table my_table" -u username --password=your_password my_database
done
3
ответ дан Tom H 27 August 2018 в 23:25
поделиться

Для окон Пользователь использует эту партию

echo off
setlocal enabledelayedexpansion
FOR %%f IN ("*.csv") DO (
  set old=%%~dpnxf
  set new=!old:\=\\!
  mysql -e "load data local infile '"!new!"' IGNORE into table email_us.business  COLUMNS TERMINATED BY ','" -u root
  echo %%~nxf DONE
)
  • email_us -> DB
  • business -> Таблица
  • IGNORE -> Игнорировать дублируемую вставку и при ошибке продолжайте
  • ~ dpnxf -> d для буквы диска, p для пути к файлу, n для имени файла, x для расширения и f - это переменная файла

Шаги: - Поместите этот командный файл в каталог, где все несколько файлов csv существуют, и назвали его как something.bat - запустите cmd.exe как администратор и вызовите этот файл something.bat и наслаждайтесь импортом ...

1
ответ дан Wasim A. 27 August 2018 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: