Вставить csv-файл в MySQL с помощью php

#php #mysql #csv

#php #mysql #csv

Вопрос:

Я использую приведенный ниже код для вставки моего csv-файла в свою базу данных, когда я его запускаю, я получаю 0 строк, но вставляется 1 строка. Но все же в моем csv-файле у меня есть 30 записей, я не уверен, где я ошибаюсь. Я использую phpMyAdmin на сервере WAMP.

Это создание моей таблицы:

 $query_Customer = "Create table tbl_Customer
(
    customer_id int Primary Key auto_increment,
    customer_name varchar(50) NOT NULL,
    customer_email varchar(50) NOT NULL,
    customer_number char(10) NOT NULL,
    customer_address varchar(50) NOT NULL);";
  

Это мой код для вставки CSV-файла:

 $sql = "LOAD DATA LOCAL INFILE 'txt/customerData.csv'
        INTO TABLE tbl_Customer
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"' 
        LINES TERMINATED BY ',,,\r\n'
        (customer_id, customer_name, customer_email, customer_number, customer_address)";

mysqli_options($con, MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_query($con, $sql);
if(mysqli_query($con, $sql)) { 
    echo "insert Successfully";
}else{
    echo "Error ". mysqli_error($con);
}
$rows_imported = mysqli_affected_rows($con); // returns how many rows are affected/inserted
echo $rows_imported.' row(s)affected';
  

Это текст в моем csv-файле:

 1, Billy, billy@gmail.com, 0614569631, 20 House Street
2, Steve, steve@gmail.com, 081269691, 13 Curry Street
3, Leo, leo@gmail.com, 0834569692, 7 Pigeon Avenue
4, James, james@gmail.com, 0714739631, 105 Canary Street
5, Barry, barry@gmail.com, 0821296631, 2759 Kingfisher Street
6, Allen, allen@gmail.com, 0614035631, 19 Bayswater Street
7, Joe, joe@gmail.com, 0845696672, 54 Hamerkop Lane 
8, Oliver, oliver@gmail.com, 0834569631, 9 Bedford Street
9, Queen, queen@gmail.com, 0849999631, 2 Albany Street
10, West, west@gmail.com, 0721398731, 71 Starling Street
  

Комментарии:

1. У вас есть репрезентативный пример вашего CSV-файла, пожалуйста

2. Я получаю 0 затронутых строк, но вставляется 1 строка. Но все же в моем csv-файле у меня 30 записей , это означает, что по какой-то причине загрузка данных завершается неудачно во 2-й строке (в первую очередь проблемы с форматированием, но, возможно, какое-то нарушение ограничений и т.д.). Загрузите свой файл с помощью CLI и найдите сообщение об ошибке.

3. @RiggsFolly Я добавил ссылку на изображение выше

4. @Akina Я не уверен, что такое CLI или как это работает

5. CLI == Интерфейс командной строки. Консольный клиент mysql.exe .