Ошибка 500 при попытке вставить данные excel в mysql с помощью PHP
Я пытаюсь загрузить файл (xlsx) в mysql, и я продолжаю получать ту же ошибку при попытке отправить. "127.0.0.1 в настоящее время не может обработать этот запрос". Какие-нибудь советы?
Что я уже пробовал:
<?php require('Classes/PHPExcel/IOFactory.php'); $servername="localhost"; $username="omri"; $password="1234"; $dbname="omri"; if(isset($_POST['upload'])){ $inputfilename= $_FILES['file']['tmp_name'] ; $exceldata= array(); $conn= mysqli_connect($servername, $username, $password, $dbname); if(!$conn){ die("connection failed: ".mysqli_connect_error()); } try{ $inputfiletype= PHPExcel_IOFactory::identify($inputfilename); $objReader= PHPExcel_IOFactory::createReader($inputfiletype); $objPHPExcel= $objReader ->load($inputfilename); } catch(Exception $e) { die('error loading file "'.pathinfo($inputfilename, PATHINFO_BASENAME).'": '.$e->getMessage()); } $sheet= $objPHPExcel->getSheet(0); $highestrow= $sheet->getHighestRow(); $higestcolumn= $sheet->getHighestColumn(); for($row=1; $row<=$highestrow; $row++) { $rowData= $sheet->rangeToArray('A'. $row .':'. $higestcolumn . $row, NULL, TRUE, FALSE ); $sql= "INSERT INTO restricted (name, id, citizenship, expires) VALUES ('".$rowData[0][0]."','".$rowData[0][1]."','".$rowData[0][2]."','".$rowData[0][3]."')"; if(mysql_query($conn,$sql)){ $exceldata[]=$rowData[0]; } else{ echo "Error: " . $sql . "<br>" . mysql_error($conn); } } echo "<table border='1'>"; foreach($exceldata as $index => $excelraw) { echo "<tr>"; foreach($excelraw as $excelcolumn) { echo "<td>". $excelcolumn . "</td>"; } echo "</tr>"; } echo "</table>"; mysql_close($conn); } ?> <html> <head> <meta charset="UTF-8"> <title>Import Excel</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="upload" value="upload"> </form> </body> </html>
Jochen Arndt
Проверьте файл журнала ошибок вашего веб-сервера. Он должен содержать больше информации.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]