Невозможно загрузить базу данных как 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));

и, возможно, добавить отчет об ошибках в первый вызов функции / выполнение запроса.

Другие вопросы по тегам