Добавить новый файл в базу данных с ошибкой внешнего ключа в PHP - PullRequest
0 голосов
/ 19 апреля 2020

Я недавно работал над своей курсовой работой и застрял с проблемой.

Дело в том, что пользователь запрашивает художественное произведение с веб-сайта HTML, поэтому для включения в таблицу SQL необходимо ввести такие данные, как UserID, для которых необходимо создать произведение искусства, но выдает ошибку, что я не могу изменить внешний ключ, который он берет из данных сеанса

Это ошибка, которую он отображает, и сам код

errorCannot добавить или обновить дочернюю строку : ограничение внешнего ключа не выполнено (project work. arts, CONSTRAINT arts_ibfk_1 FOREIGN KEY ( For_UserID ) REFERENCES users ( UserID`))

  <?php
    session_start();
    $genre=$_POST['genre'];
    $ext=$_POST['ext'];
    $desc=$_POST['desc'];
    $conn= new mysqli("127.0.0.1", "root", "","project work") or die ("Can't connect to db");

    if (($genre!="") and ($ext!="") and ($desc!="")) {

    $query= "INSERT INTO `Arts` (`Genre`,`Extension`,`Description`,`For_UserID`,`Is_Done`) 

    VALUES ('$genre','$ext','$desc','{$_SESSION['UserID']}','0')";

    if ($conn->query($query)== TRUE)    
        echo "Succesfully!" ;   
    else  die('error' .$conn->error);
    }
    else echo "Fill all the fields, please!";
    ?>

Есть ли способ избежать эта ошибка?

1 Ответ

1 голос
/ 19 апреля 2020

Эта ошибка означает только то, что For_UserID, введенный в качестве ввода, не является действительным (существующим) UserID вашей таблицы 'users'. Например, если в вашей таблице 3 пользователя 'пользователи' с соответствующими идентификаторами 1,2,3, и вы пытаетесь ввести идентификатор 4 для того, кто должен делать искусство, он выдаст эту ошибку, потому что ваша таблица 'arts_ibfk_1' имеет внешний ключ, связанный с этой таблицей 'users'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...