Получение идентификатора из дочерней таблицы в родительскую таблицу [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Гость
 Получение идентификатора из дочерней таблицы в родительскую таблицу [дубликат]

Сообщение Гость »


Используя php pdo, я создал очень простую форму загрузки изображений, чтобы научиться загружать изображения. У меня есть две таблицы: таблица сообщений и таблица изображений. С его помощью вы можете создать сообщение, содержащее текст и изображение, и после отправки оно отобразит их. Проблема в том, что я не могу отобразить изображение, оно просто отображается сломанным.

Я настроил внешний ключ в базе данных, чтобы идентификатор изображения добавлялся в столбец с названием image_id в таблице сообщений, но я не могу понять, как заполнить столбец image_id в таблице сообщений соответствующим изображением. идентификатор. если я вручную введу идентификатор изображения в столбец image_id, изображение действительно отобразится. любые советы будут полезны. Я подумал, что мне нужно сделать что-то другое с переменной image_id ниже

$file_name = $_FILES['file']['name']; $file_temp = $_FILES['file']['tmp_name']; $file_size = $_FILES['file']['size']; $file_type = $_FILES['file']['type']; $date_uploaded=date("Г-м-д"); $location="upload/".$file_name; $title = $_POST['title']; $content = $_POST['content']; $image_id = $_POST['image_id']; $stmt = $pdo->prepare("INSERT INTO post(title, content, image_id) VALUES (:title, :content, :image_id)"); $stmt->bindParam(':title', $title); $stmt->bindParam(':content', $content); $stmt->bindParam(':image_id', $image_id); $stmt->execute();` Спасибо, теперь это работает. Это обновленная версия, основанная на совете. это более правильная идея?
$data = [ 'файл' => $имя_файла, 'alt' => $file_temp, ]; $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "ВСТАВИТЬ В изображения (файл, alt) ЗНАЧЕНИЯ (:file, :alt)"; $stmt = $pdo->prepare($sql); $stmt->execute($data); $last_id = $pdo->lastInsertId(); $title = $_POST['title']; $content = $_POST['content']; $stmt = $pdo->prepare("INSERT INTO post(title, content, image_id) VALUES (:title, :content, :image_id)"); $stmt->bindParam(':title', $title); $stmt->bindParam(':content', $content); $stmt->bindParam(':image_id', $last_id); $stmt->выполнить();
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»