Как загрузить данные переменной, содержащей данные файла CSV, в таблицу, используя MySQL и PHP 7.4?

#php #mysql

#php #mysql

Вопрос:

Я использую переменную сеанса для хранения данных csv. Но я не знаю значения $file_location , поскольку я использую переменную сеанса. Поэтому я не могу выполнить свой запрос. Есть ли способ загрузить данные с помощью $file_data переменной.

 $file_data = $_SESSION['file_data'];
$file_location = str_replace("\", "/", $_FILES['file']['tmp_name']);

$query_1 = 'LOAD DATA LOCAL INFILE "'.$file_data.'" IGNORE INTO TABLE customer_table
  FIELDS TERMINATED BY "," LINES TERMINATED BY "rn"  IGNORE 1 LINES
  (@column1,@column2,@column3,@column4)
  SET customer_first_name = @column1, customer_last_name = @column2,  customer_email
  = @column3, customer_gender = @column4';

$statement = $connect->prepare($query_1);
 

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

1. Вы можете записать переменную во временный файл, а затем загрузить этот файл.

2. Я рекомендую вам создать хранимую процедуру, которая получает $file_data имя в качестве параметра, проверяет его на достоверность и отсутствие уязвимостей, затем загружает данные в таблицу с помощью подготовленного оператора и сообщает результат. PS. В чем причина использования промежуточных переменных? загрузите данные непосредственно в столбцы назначения. PPS. $file_location переменная нигде не используется.