数据库INSERT INTO错误

时间:2017-03-24 18:18:12

标签: php

我试图找出我的代码有什么问题。 这是我收到的错误

“无法添加或更新子行:外键约束失败”

这是我的代码

<?php
$sql = "INSERT INTO stasjon (navn) VALUES ('skogen', 'voksenlia') "; 
$resultat = $kobling->query ($sql);

$sql ="SELECT * FROM stasjon WHERE navn = ('skogen')";
$resultat = $kobling->query ($sql);
while ($rad = $resultat->fetch_assoc()) {
  $stasjon_id = $rad['stasjon_id'];
}
$sql = "INSERT INTO linjestasjon (linje_nr, stasjon_id) VALUES ('1','$stasjon_id')";
$resultat = $kobling->query ($sql);
if($kobling->query($sql)) {
    echo "Spoerringen $sql ble gjennomfoert.";
} else {
    echo "Noe gikk galt med spoerringen $sql ($kobling->error).";
?>

其中一些是挪威语,因为这是我正在制作的数据库的语言。我试图将值添加到两个不同的表(stasjon_id作为外键)提前感谢

1 个答案:

答案 0 :(得分:0)

外键约束检查您正在插入或更新到特定字段的值存在于另一个表的某个其他字段中。假设我有两个表如下

CREATE TABLE TableA
(
    SeqNo INT PRIMARY KEY,
    Name VARCHAR(500
)

CREATE TABLE TableB
(
    SeqNo INT NULL FOREIGN KEY REFERENCES TableA(SeqNo),
    Name VARCHAR(50)
)

因此,当您向Tableb.SeqNo字段中插入新记录时,该值应为NULL或TableA.SeqNo中存在的某个值。

因此,在插入值之前,请确保插入满足外键约束的值