Загрузка файлов с помощью php | Файлы больше не загружаются

Я загружаю файлы в свою базу данных с помощью PHP. Сначала все работало, но вдруг перестало. вот мой код

print "<form action='' method='POST' enctype='multipart/form-data'>";
print "<td class='tesname'>". $row['exam_name']. "</td>";
print "<input type='hidden' name='user_id' value='".$_GET['user_id']."'>";
print "<input type='hidden' name='lab_name' value='".$row['exam_name']."'>";                        
print "<td class='tesdate'><input class='form-control' type='Date' autofocus  id='TestDate' placeholder='Test Date' name='testDate'></td>";
print "<td><input type='file' class='file-input' id='myfile' placeholder='Upload' name='myfile'></td>";
print "<td><input type='hidden' name='exam_id' value='".$row['exam_id']."'>
<button type='Submit' class='btn btn-info' name='btn'>upload</button></td>
</form>

а вот PHP-код

$dbh = new PDO("mysql:host=localhost;dbname=ehr_new","root", "");

if (isset($_POST['btn'])){
    $name = $_FILES['myfile']['name'];
    $type = $_FILES['myfile']['type'];
    $data = file_get_contents($_FILES['myfile']['tmp_name']);
    $stmt = $dbh->prepare("insert into patinet_examination values(?,?,?,?,?,?,?)");
    $stmt->bindParam(1,$_POST['testDate']);
    $stmt->bindParam(2,$_POST['exam_id']);
    $stmt->bindParam(3,$_POST['user_id']);
    $stmt->bindParam(4,$_POST['lab_name']);
    $stmt->bindParam(5,$name);
    $stmt->bindParam(6,$type);
    $stmt->bindParam(7,$data);
    $stmt->execute();
    print "success";
}

как я уже сказал, все работало нормально, и вдруг запрос отказывается вставляться в базу данных.

также, вот моя структура БД

Загрузка файлов с помощью php | Файлы больше не загружаются

Спасибо

Можете ли вы вывести ошибку, которую вы получаете, а также структуру БД.

Mark 14.03.2019 16:13

Хорошо, но что происходит? Какие сообщения об ошибках вы получаете?

Marco 14.03.2019 16:13

Я не получаю никаких сообщений об ошибках. это сбивает с толку. Я собираюсь загрузить изображение структуры базы данных.

aftermath 14.03.2019 16:14

поместите блок try catch вокруг кода, возможно, вы получаете исключение.

Marco 14.03.2019 16:15

@Marco извините, я никогда не использовал обработку исключений в php :( неловкий момент

aftermath 14.03.2019 16:19
Примечание: Не печатайте большие фрагменты HTML с помощью PHP. Просто закройте блок PHP ?>, напишите свой HTML и откройте новый блок PHP: <?php. Это упростит чтение вашего кода, а среда IDE также сможет выделять синтаксис HTML.
M. Eriksson 14.03.2019 16:19

Добавьте $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); сразу после подключения

RiggsFolly 14.03.2019 16:19

Не волнуйся братан, это очень легко и просто. См. php.net/manual/en/language.exceptions.php

Marco 14.03.2019 16:21

Вы вдруг начали загружать очень большие файлы? Я заметил, что вы никогда не смотрите на $_FILES['myfile']['error'], чтобы проверить загруженный файл.

RiggsFolly 14.03.2019 16:21

Вижу exam_id уникален, наверное у вас уже есть такой же exam_id уже существующий.

Mihai 14.03.2019 16:23

Я получил эту ошибку: Неустранимая ошибка: Uncaught PDOException: SQLSTATE [23000]: нарушение ограничения целостности: 1062 Дублирующаяся запись «21» для ключа «PRIMARY» в C:\xampp\htdocs\ehr\lab-result.php:145 Трассировка стека : #0 C:\xampp\htdocs\ehr\lab-result.php(145): PDOStatement->execute() #1 {main} добавлено в C:\xampp\htdocs\ehr\lab-result.php в строке 145

aftermath 14.03.2019 16:26

exam_id — это уникальный ключ, и вы добавляете повторяющийся идентификатор. Это не должен быть первичный ключ, если у вас может быть две строки с одним и тем же exam_id.

Asrar 14.03.2019 16:29

И теперь вы научились волшебству обработки исключений :) Вы всегда должны использовать его.

Marco 14.03.2019 16:30

большое спасибо, ребята. теперь он работает, это был первичный ключ. люблю вас всех :D <3

aftermath 14.03.2019 16:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
14
53
0

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