INSERT INTO `test`.`lecturer` (`lecturerID`, `course_ID`, `lecturerFirstName`, `lecturerLastName`, `lectureremail`, `lecturerpassword`) VALUES (NULL, NULL, 'test', 'test', '[email protected]', '123456');

假设我在phpmyadmin中键入了测试代码,那么讲师ID是主键,并且还具有自动递增功能,根据我的理解,我不想在那里键入任何内容,sql server将为我输入下一个数字,但是我一直得到键“primary”的“1062-重复项“0”。也许有人能告诉我为什么我要面对这些?谢谢。
完整代码:
<?php include_once "/_core/core.php"; ?>
 <?php

 if(isset($_POST['id']))
{
$delid =  mysql_real_escape_string($_POST['id']);

$sql="DELETE FROM lecturer WHERE lecturerID='$delid'";
mysql_query($sql);
   }

   if(isset($_POST['fname']) and ($_POST['lname']) and ($_POST['email']) and ($_POST['password']))
{
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string($_POST['password']);
echo $fname, $lname, $email, $password;
$sql = 'INSERT INTO lecturer (lecturerID, course_ID, lecturerFirstName, lecturer_LastName, lectureremail, lecturerpassword) VALUES (NULL,"0","'.$fname.'","'.$lname.'","'.$email.'","'.$password.'")';
mysql_query($sql);
   }
?>
    <?php
    if(!empty($_SESSION['Admin']) && !empty($_SESSION['Username']))
    {
        ?>
        <?php include "_core/menubar.php"; ?>
<br><br><br>
<form class="form-horizontal" action="add_lecturer.php" method="POST">
<fieldset>

<!-- Form Name -->
<legend>Add lecturer</legend>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="fname">First Name</label>
  <div class="col-md-4">
  <input id="fname" name="fname" type="text" placeholder="First Name" class="form-control input-md" required="">

  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="lname">Last Name</label>
  <div class="col-md-4">
  <input id="lname" name="lname" type="text" placeholder="Last Name" class="form-control input-md" required="">

  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="email">Email</label>
  <div class="col-md-5">
  <input id="email" name="email" type="text" placeholder="[email protected]" class="form-control input-md" required="">

  </div>
</div>

<!-- Password-->
<div class="form-group">
  <label class="col-md-4 control-label" for="password">Password</label>
  <div class="col-md-4">
    <input id="password" name="password" type="password" placeholder="*****" class="form-control input-md" required="">

  </div>
</div>

<!-- Button -->
<div class="form-group">
  <label class="col-md-4 control-label" for="submit"></label>
  <div class="col-md-4">
    <button id="submit" name="submit" class="btn btn-success">Submit</button>
  </div>
</div>

</fieldset>
</form>

    <?php
    $query = ('SELECT * FROM  lecturer');
        $q = mysql_query($query);
        if(mysql_num_rows($q) > 0)
{
?>
Lecturer List
<table class="table table-striped table-hover">
<form action="add_lecturer.php" method="post">

<?php
    while($row = mysql_fetch_array($q)) {
        echo "<tr>";
        echo "<td>" . $row['lecturerID'] . "</td>";
        echo "<td>" . $row['lecturerFirstName'] . "</td>";
        echo "<td>" . $row['lecturerLastName'] . "</td>";
        echo "<td>" . $row['lectureremail'] . "</td>";
        echo '<td><input type="submit" name="deleteItem" value="Delete" /></td>';
        echo '<td><input type="hidden" id="id" name="id" value="'.$row['lecturerID'].'" /></td>';
    echo "</tr>";
    }
    ?>
    </table>
    </form>
<?php
    }
else
{
    echo "You have no lecturers added!";
}

?>
     <?php
}

    else
    {
                echo "<meta http-equiv='refresh' content='2;index.php' />";
        ?>
<?php include "../_class/login.php"; ?>

    <?php

    }
    ?>
    </div>
<?php include "../_class/footer.php"; ?>

最佳答案

必须为自动递增列传递NULL而不是像这样的值

INSERT INTO `test`.`lecturer`
(`lecturerID`, `course_ID`, `lecturerFirstName`, `lecturerLastName`, `lectureremail`, `lecturerpassword`)
VALUES (NULL, NULL, 'test', 'test', '[email protected]', '123456');

09-25 18:17