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

#php #mysql #sql #pdo #uploading

#php #mysql #sql #pdo #загрузка

Вопрос:

Я загружаю файлы в свою базу данных с помощью 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";
}
  

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

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

 структура БД

Спасибо

Комментарии:

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

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

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

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

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