Невозможно загрузить базу данных как CSV
Я пытаюсь загрузить всю базу данных, но постоянно получаю сообщение об ошибке:
Ошибка разбора: синтаксическая ошибка, неожиданное '' LINES TERMINATED BY '' (T_CONSTANT_ENCAPSED_STRING) в C:\wamp64\www\cookies\download_db.php в строке 6
Мой код:
<?php
require 'db_key.php';
$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql_query = mysqli_query($conn, "SELECT * FROM ventas INTO OUTFILE '/tmp/db_downlaod.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'");
mysqli_query($conn, $sql) or exit(mysqli_error($conn));
mysqli_close($conn);
header('Content-type: text/csv');
header('Content-disposition: attachment; filename=db_downlaod.csv');
readfile('/tmp/db_downlaod.csv');
unlink('/tmp/db_downlaod.csv');
exit();
?>
Любая помощь очень ценится
1 ответ
Вы закрываете строку PHP SQL на enclosed by
бит, а затем начать новую строку в следующей одинарной кавычке. Вам также нужно дважды экранировать новую строку, так как вы находитесь в двойных кавычках и хотите, чтобы mysql получил его как \n
, Пытаться:
$sql_query = mysqli_query($conn, "SELECT * FROM ventas INTO OUTFILE '/tmp/db_downlaod.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\n'");
Визуальная:
$sql_query = mysqli_query($conn, "SELECT * FROM ventas INTO OUTFILE '/tmp/db_downlaod.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'");
closes PHP>^^<starts a new single quoted PHP string
Вы также делаете 2 запроса, второй из которых относится к неназначенной переменной, $sql
,
Удалить:
mysqli_query($conn, $sql) or exit(mysqli_error($conn));
и, возможно, добавить отчет об ошибках в первый вызов функции / выполнение запроса.