#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
переменная нигде не используется.