#php #sql #excel
#php #sql #excel
Вопрос:
Я пытаюсь экспортировать данные sql в Excel с помощью php. Это код:
<div>
<?php
$conn = mysqli_connect("localhost","scardma_scard","Scard2020@","scardma_scard_platform");
$query = 'SELECT ut.id, ut.nom, ut.prenom FROM utilisateurs ut WHERE ut.id_societe ='.$_GET['id'];
$result = mysqli_query($conn,$query);
?>
<table style="display:none;" border="2px solid black">
<tr>
<th>Id</th>
<th>Url</th>
</tr>
</table>
<?php
if ($query == true) {
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=exportfile.xls");
header("Pragma: no-cache");
header("Expires: 0");
}
?>
Он отлично работает на локальном сервере, но не работает на реальном сервере, и ничего не загружается.
Любая помощь?
Комментарии:
1. Вы уже отправили заголовки при отображении
<div>
<table>
и любой вывод. Возможно, ваш локальный сервер буферизует выходные данные, и поэтому ему удается изменять заголовки «после отправки» некоторых выходных данных2. Обратите внимание, что ваш запрос уязвим для SQL-инъекций, и вам следует рассмотреть возможность использования подготовленных операторов
3.
$query
является непустой строкой, она всегда будет иметь истинное значение4. Основываясь на приведенном выше коде, остается загадкой, где на самом деле происходит экспорт, нет логики для преобразования результатов SQL в Excel и сохранения их как
exportfile.xls
. В любом случае, если вы не собираетесь использовать библиотеку для создания указанных файлов Excel, вам, вероятно, проще и лучше просто экспортировать в CSV и импортировать его с помощью Excel.