[英]How to allow NULL value on foreign key on php
美好的一天。 我正在寻求有关如何处理代码的帮助:PHP部分:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$student = $_POST['student'];
$lecture = $_POST['lecture'];
$room = $_POST['room'];
$students = mysqli_query($con,"SELECT * FROM students WHERE student='$student'");
$lectures = mysqli_query($con,"SELECT * FROM lectures WHERE lecture='$lecture'");
$rooms = mysqli_query($con,"SELECT * FROM rooms WHERE room='$room'");
$student_row = mysqli_fetch_array($students);
$lecture_row = mysqli_fetch_array($lectures);
$room_row = mysqli_fetch_array($rooms);
我要在这部分中做的是,如果房间输入上没有任何条目,则在参考表的room_id列中插入null值:
if($student != $student_row['student']) {
$addStudent = mysqli_query($con,"INSERT IGNORE INTO students (student) VALUES ('$student')");
$studentID = mysqli_insert_id($con);
}else{
$studentID = $student_row['student_id'];
};
if($lecture != $lecture_row['lecture']) {
$addLecture = mysqli_query($con,"INSERT IGNORE INTO lectures (lecture) VALUES ('$lecture')");
$lectureID = mysqli_insert_id($con);
}else{
$lectureID = $lecture_row['lecture_id'];
};
if($room != $room_row['room']) {
$addRoom = mysqli_query($con,"INSERT IGNORE INTO rooms (room) VALUES ('$room')");
$roomID = mysqli_insert_id($con);
}else{
$roomID = $room_row['room_id'];
};
我认为这是需要更改的部分:
$addClass = mysqli_query($con,"INSERT INTO classes (student_id,lecture_id,room_id) VALUES ('$studentID','$lectureID','$roomID')");
if($addClass){
echo 'Success';
}else{
echo 'Error: '.mysqli_error($con);
};
};
?>
HTML部分:
<html>
<title>Add Class</title>
<body>
<form name="Add Class" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Student: <input type="text" name="student" />
</br></br>
Lecture: <input type="text" name="lecture" />
</br></br>
Room: <input type="text" name="room" />
</br></br>
<input type="submit" value="Add Class">
</form>
</body>
</html>
谢谢。
您可以简单地将NULL作为值插入。 像这样:
if(empty($room))
$room = "NULL";
就在mysqli插入之前。 确保您实际上传递了字符串null,非空或0。
哦,您显然需要确保该列未标记为NOT NULL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.