Открыть CSV создать столбец и вставить

Я хочу загрузить CSV-файл с помощью PHP, я хочу, чтобы он создавал столбцы на основе заголовка в CSV-файле, а затем вставлял данные без необходимости встраивания всех имен столбцов в сценарий.

Каждый CSV будет иметь разные столбцы и разное количество столбцов.

У меня есть скрипт, созданный для открытия CSV и создания столбцов, но я не буду вставлять данные.. Я также добавлю, что CSV составляет 163 МБ и 615 КБ записей... мой хост MySQL позволяет только 75000 транзакций в час, мне также нужно обрабатывать около 73000 записей и спят час.

<?php
$fp         = fopen('detail.csv', 'r');
$servername = "localhost";
$username   = "user";
$password   = "password";
$dbname     = "database_name";
$colName    = "detail";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
//fgetcsv($fp);
$header = fgetcsv($fp);

// sql to create table
$sql = "CREATE TABLE $colName (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY)";
if (mysqli_query($conn, $sql)) {
    echo "<br>Table created successfully";
} else {
    echo "Error creating table: " . mysqli_error($conn);
}

$i = 0;
while ($i <= count($header)) {
    $table  = $colName;
    $column = $header[$i];

    $add = "ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL";

    if (mysqli_query($conn, $add) != NULL) {
        echo "<br>Column added successfully";
    }  else {
        echo "<br>Error creating column: " . mysqli_error($conn);
    }
    $i++; 
}
mysqli_close($conn);
?>

0 ответов

Другие вопросы по тегам