gpt4 book ai didi

php - 外键值不显示

转载 作者:行者123 更新时间:2023-11-29 20:36:10 24 4
gpt4 key购买 nike

假设我有 2 张 table 。

student_tbl = student_id(PK)
student_name

officers_tbl = officer_id(PK)
officer_name
student_id(FK)

我有一个自动完成表单,其中包含来自 Student_tbl 的数据。一旦用户从自动完成表单中选择学生姓名,隐藏输入将具有一个值,该值是所选学生的 ID。序列化表单后,

    [stud_id] => Array
(
[1] => 400
[2] => 404
[3] => 423
[4] => 462
[5] => 401
[6] => 413
[7] => 414
[8] => 409
[9] => 403
[10] => 0
)

//others

当stud_id = 0时,在officer_name中插入学生姓名,在student_id中插入NULL。
当stud_id != 0时,在name中插入NULL,在student_id中插入stud_id。

提交表单后,在我的数据库中,仅插入 NULL。

After submitting the form

officers_tbl

enter image description here

当我尝试删除两个表之间的关系时,所有 stud_id 都正确插入/添加。有人能告诉我我的错误是什么吗?谢谢

这是我插入数据的代码

    for($x = 1; $x <= 10; $x++){
if($row['studentid'][$x] == 0){
$stud_id= NULL;
$name = $row['name'][$x];
}else{
$stud_id= $row['studentid'][$x];
$name = NULL;
}

$query= $connection->prepare("INSERT INTO officers_tbl (name, student_id)
VALUES (:name, :student_id);

$query->bindParam(':name', $name, PDO::PARAM_STR);
$query->bindParam(':student_id', $stud_id, PDO::PARAM_INT);
$query->execute();

}

现在正在运行。我重新启动了笔记本电脑。

最佳答案

当您说以下内容时,我不明白您想做什么:

When stud_id = 0, insert student name to officer_name and NULL to student_id. When stud_id != 0, insert NULL to name and stud_id in student_id.

如果删除关系后工作正常。我认为问题可能出在你执行 SQL 插入的顺序上。 Student_tbl 中的插入必须排在第一位,或者确保 Students_id 存在。

也许“stud_id = 0”意味着有一个新学生还没有“stud_id”,而您尝试插入 NULL 而不是有效的 Stud_id。

[http://www.w3schools.com/sql/sql_foreignkey.asp][1]

FOREIGN KEY 约束可防止将无效数据插入到外键列中,因为它必须是它指向的表中包含的值之一。

关于php - 外键值不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38802462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com