2017-03-24 3 views
0

Ich habe versucht, herauszufinden, was mit meinem Code falsch war. Diese ist der Fehler ich recievingDatenbank INSERT INTO Fehler

„Kann nicht hinzugefügt werden oder ein Kind Zeile aktualisieren: ein Fremdschlüssel versagt“

Dies ist mein Code

<?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)."; 
?> 

Ein Teil davon in den norwegischen ist, weil Das ist die Sprache der Datenbank, die ich mache. Ich habe versucht, Werte zu zwei verschiedenen Tabellen hinzuzufügen (die stasjon_id als Fremdschlüssel hatte) Vielen Dank im Voraus

+0

Bitte verwenden Sie keine Tags, die auf Ihre Frage nicht gelten. Ich habe die Datenbank-Tags entfernt, da unklar ist, welche Datenbank Sie tatsächlich verwenden. Bitte fügen Sie das Tag von * nur * der Datenbank, die Sie tatsächlich verwenden, hinzu: –

+0

Bitte beschreiben Sie "stasjon" und "beschreiben linjestasjon" und veröffentlichen Sie die Ergebnisse. Dies wird uns helfen, die Ursache zu identifizieren. – Dimi

+1

1 Spalte und 2 Werte; Die Mathematik addiert nicht –

Antwort

0

Fremdschlüsseleinschränkungen überprüft den Wert, den Sie einfügen oder aktualisieren auf ein bestimmtes Feld existiert in einem anderen Feld eines anderen Tabelle. Angenommen, ich habe 2 Tabellen wie folgt

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

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

Also, wenn Sie einen neuen Datensatz einfügen, um die Tableb.SeqNo eingereicht, sollte der Wert entweder NULL oder ein Wert, der in der TableA.SeqNo existiert.

So sind die Werte stellen Sie sicher, vor dem Einsetzen, dass Sie den Wert einfügen, die Ihre Fremdschlüssel erfüllen

+0

Bitte schauen Sie sich noch einmal ihre erste Suchanfrage an und schauen Sie sich die Kommentare unter ihrer Frage an. Ihre Antwort könnte hilfreich sein, löst jedoch nicht die Syntax, die veröffentlicht wurde. Der Fehler kommt von der ersten Abfrage. –

+0

Entschuldigung, ich habe diesen Teil verpasst. Versuchen Sie, die erste Abfrage wie folgt zu ändern: $ sql = "INSERT INTO stasjon (navn) WERTE ('skogen'), ('voksenlia')"; –