PHP Попытка вставить данные в две разные таблицы с использованием подготовленной оценки - PullRequest
0 голосов
/ 29 октября 2018

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

Первое утверждение работает без проблем, второе не вводит никаких моих данных в мою базу данных. Моя цель состоит в том, чтобы взять информацию, переданную через форму (которую я могу включить, не хотел подвергать бомбардировке информацией, поскольку я уверен, что это не проблема) и взять PictureID, который является первичным ключом в моей таблице изображений, и вставить это так же, как и другая информация в моей таблице цен на изображения.

любая помощь будет приветствоваться, я довольно новичок на сайте, поэтому будьте осторожны, пожалуйста :)

<?php

include_once "dbh.php";

if (empty($imageTitle) || empty($imageDesc)) {
    header("Location:changes.php?upload=empty");
    exit();
} else {
    $sql = "SELECT * FROM pictures;";
    $sqltwo = "SELECT * FROM pictureprice;";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: changes.php?sqlerror=failed");
        exit();
    } else {     //Gallery order//
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        $rowCount = mysqli_num_rows($result);
        $setImageOrder = $rowCount + 1;



        $sql = "INSERT INTO pictures (PhotographerID, PictureFolderPath, 
        imageDesc, imgFullNameGallery, orderGallery) VALUES (?, ?, ?, ?, 
         ?);";
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: changes.php?sqlerror=failedtoinputdata");
            exit();
        } else {
            mysqli_stmt_bind_param($stmt, "issss", $_SESSION['PhotographerID'], $fileDestination, $imageDesc, $imageFullName, $setImageOrder);
            mysqli_stmt_execute($stmt);
            move_uploaded_file($fileTempName, $fileDestination);

            $result = mysqli_stmt_get_result($stmt);
            $row = mysqli_fetch_assoc($result);
            $photoID = $row["PictureID"];     //new
            header("Location:changes.php?upload=success11");
        }

        $sqltwo = "INSERT INTO pictureprice 
      (PictureID, PictureSize, PictureSize2, PictureSize3, PictureSize4, 
      PicturePrice, PicturePrice2, PicturePrice3, PicturePrice4) VALUES (?, 
         ?, ?, ?, ?, ?, ?, ?, ?);";
        if (!mysqli_stmt_prepare($stmt, $sqltwo)) {
            header("Location: changes.php? 
       sqlerror=failedtoinputdatapictureprice");
            exit();
        } else {
            mysqli_stmt_bind_param($stmt, "issssiiii", $photoID, $picturesize1, $picturesize2, $picturesize3, $picturesize4, $price1, $price2, $price3, $price4);
            mysqli_stmt_execute($stmt);
            header("Location:changes.php?upload=success");
        }

1 Ответ

0 голосов
/ 29 октября 2018

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

    $result = mysqli_stmt_get_result($stmt);
    $row = mysqli_fetch_assoc($result);
    $photoID = $row["PictureID"];     //new

Это, вероятно, не принесет ничего значимого (насколько я могу судить).

Чтобы получить значение автоинкремента, вы обычно вызываете ...

$photoID = mysqli_insert_id($conn);
...