Как избежать двойных кавычек в mysqli_query () в PHP?

Я пытаюсь обновить базу данных MySQL, используя файл CSV.

У меня этот запрос работает в phpmyadmin

LOAD DATA INFILE 'C:/wamp/www/website/test_mysql_import.csv' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n'

но когда я пытаюсь использовать его в функции mysqli_query, он не обновляет базу данных.

вот полный блок кода:

<?php require "db_connect.php"; ?>
<?php
$csv_file = "C:/wamp/www/website/test_mysql_import.csv";

$sql_dump ="TRUNCATE TABLE csv_preset";
$sql_update = "LOAD DATA INFILE '$csv_file' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n'");
mysqli_query($db_conx, $sql_dump);
mysqli_query($db_conx, $sql_update);
?>

0

Решение

<?php require "db_connect.php"; ?>
<?php
$csv_file = "C:/wamp/www/website/test_mysql_import.csv";

$sql_dump ="TRUNCATE TABLE csv_preset";
$sql_update = "LOAD DATA INFILE '".$csv_file."' INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\n'");
mysqli_query($db_conx, $sql_dump);
mysqli_query($db_conx, $sql_update);
?>
1

Другие решения

Попробуйте этот код вместо этого:

        $sql_update = "LOAD DATA INFILE $csv_file INTO TABLE `csv_preset` FIELDS TERMINATED BY ',' ENCLOSED BY &quot; ESCAPED BY &quot; LINES TERMINATED BY \\n";

Нет необходимости в одинарных кавычках вокруг вашей переменной, так как она уже в двойных. Двойные кавычки вы можете избежать их htmlcode и новая строка с «\».

0