Мой ввод не будет вставлять информацию в мою базу данных / Fatal Error - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть фиктивная база данных, касающаяся информации о студентах и ​​предметах, которые они изучают.

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

Я несколько раз проверил свое соединение, и оно работает. выбранный код работает непосредственно в MySQL верстаке. Ниже мой код и изображение базы данных.

Сообщения об ошибках, которые я получаю:

Неустранимая ошибка: Uncaught исключение 'mysqli_sql_exception' с сообщением 'Duplicate entry' 0'для ключа' PRIMARY '' в C: \ wamp \ www \ oveove.php в строке 159 (!) mysqli_sql_exception: дублирующаяся запись '0' для ключа 'PRIMARY' в C: \ wamp \ www \ oveove.php в строке 159


<form method="post">
  <form method="post">
  <input type="text" name="fagnavn" placeholder="skriv inn fagets navn">
  <input type="text" name="type" value="skriv inn fagklassen">
  <select  name="lærer">


  <?php
$sql="select * from lærer";
$resultat = $kobling->query($sql);
while ($rad = $resultat->fetch_assoc()) {
  $lærerfnavn=$rad["fnavn"];
  $lærerenavn=$rad["enavn"];
  $idlærer= $rad["idlærer"];
  $heltnavn = $lærerfnavn. " ". $lærerenavn;
echo "<option value='$idlærer'> $heltnavn </option>";

}

   ?>
   </select>
   <select  name="studieret">
     <?php
$sql= "select * from studieret";
$resultat= $kobling->query($sql);

while ($rad= $resultat->fetch_assoc()) {
  $leder= $rad["leder"];
  $id=$rad["idstudieretning"];
  echo "<option value='$id'> $leder </option>";
}


      ?>

 </select>
 <input type="submit" name="sendinn2" value="Send inn">
</form>
<?php
if (isset($_POST["sendinn2"])) {

$fag= $_POST["fagnavn"];
$type= $_POST["type"];
$lærer=$_POST["lærer"];
$studieret=$_POST["studieret"];

  $sql="insert into fag (fagnavn, type, idlærer, idstudieretning) values ('$fag', '$type', '$lærer', '$studieret')";
  echo "$sql";
  if ($kobling->query($sql)) {
    echo "kobblingen $sql ble gjennomført";
  }
  else {
    echo "det var et problem med kobling $sql($kobling->error_message)";
  }
}
 ?>

database

1 Ответ

1 голос
/ 06 ноября 2019

Вы должны взглянуть на таблицу fag, где код пытается вставить некоторые данные в эту таблицу, потому что вы, вероятно, определили одно поле в качестве первичного ключа, но когда вы выполняете оператор вставки, вы не вставляете егополе, и если это поле не было установлено как автоинкремент, БД заполняет его значением по умолчанию, 0, если это целочисленное поле.

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