Открыть 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);
?>