Propozycja.
Wykonaj najpierw ten test, czy do folderu "tymczasowego", na który wskazuje zmienna tmpdir (czyli ma dostęp mysql)
SHOW VARIABLES LIKE 'tmpdir';
ma też "dostęp" php.
<?php
$db_user = '';
$db_password = '';
$db_name = '';
$mysqli = new mysqli('localhost', $db_user, $db_password, $db_name);
if ($mysqli->connect_errno) {
echo "Nie udało się połączyć z bazą danych: " . $mysqli->connect_error;
exit();
}
$sql = "SHOW VARIABLES LIKE 'tmpdir'";
$result = $mysqli->query($sql);
$rows = $result->fetch_row();
//var_dump($rows);
$result->free();
$csv_file_name = 'data.csv';
$csv_full_path = "{$rows[1]}/{$csv_file_name}";
echo '<b>Pełna ścieżka do pliku:</b> ' . $csv_full_path . '<br>';
$sql = "SELECT * FROM nazwa_tabeli "
. "INTO OUTFILE '{$csv_full_path}' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY ';\n'";
if ($result = $mysqli->query($sql)) {
if ($mysqli->affected_rows) {
echo 'Zwróconych wierszy z danymi: ' . $mysqli->affected_rows . '<br><br>'
. 'Zawrtość pliku<br>' . str_replace(';', '<br>', file_get_contents($csv_full_path));
} else {
echo 'Brak zwróconych wierszy.';
}
} else {
echo 'Problem z zapytaniem sql, INTO OUTFILE: ' . $mysqli->error;
}
$mysqli->close();
?>
Where MySQL Stores Temporary Files [ 1 ] [ 2 ]