Hallo zusammen,
ich arbeite gerade an einem Schulprojekt und komme nicht weiter, vielleicht kann mir jemand weiterhelfen.
INSERT INTO Einkauf (E_Date, E_S_ID, E_RechnungsNr, E_RechnungsDatei)
VALUES ("2017-12-06", 1, "Rechnungsnummer", "PFad zu der PDF")
Funktioniert wunderbar, der PK ist AutoIncrement, E_S_ID ist ein FK zu der Tabelle Shop Spalte S_ID. Zu Testzwecken habe ich die S_ID "1" angelegt.
Über ein php-Skript funktioniert es jedoch nicht:
$Insert = $DB->prepare('INSERT INTO Einkauf (E_Date, E_S_ID, E_RechnungsNr, E_RechnungsDatei) VALUES ("$einkauf_datum", "$sid", "$rechnung_nummer", "$Filename")');
if ($Insert->execute()) {
echo "<p>Die Daten wurden eingetragen.</p>";
echo "Datum: $einkauf_datum2 <br>";
echo "S_ID: $sid <br>";
echo "Shop Name $shop_name <br>";
echo "RechnNr: $rechnung_nummer <br>";
echo "Filename: $Filename <br>";
print_r($Insert->errorInfo());
}
else {
echo "<p>Fehler beim eintragen der Daten!</p>";
echo "Datum: $einkauf_datum2 <br>";
echo "S_ID: $sid <br>";
echo "Shop Name $shop_name <br>";
echo "RechnNr: $rechnung_nummer <br>";
echo "Filename: $Filename <br>";
print_r($Insert->errorInfo());
}
Ausgabe:
Fehler beim eintragen der Daten!
Datum: 2018-11-29
S_ID: 1
Shop Name Placeholder
RechnNr: testrechnungsnummer
Filename: spiderfinance_1723.png
Array ( [0] => 23000 [1] => 1452 [2] => Cannot add or update a child row: a foreign key constraint fails (`spiderfi-prod`.`Einkauf`, CONSTRAINT `Einkauf_Shop_ID` FOREIGN KEY (`E_S_ID`) REFERENCES `Shop` (`S_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION) )
Falls ich offensichtliche Fehler gemacht habe, bitte ich um Nachsicht, ich lerne noch.
Vielen Dank!
SELECT Version();
10.1.23-MariaDB-9+deb9u1
SHOW CREATE TABLE Einkauf;
CREATE TABLE `Einkauf` (
`E_ID` int(11) NOT NULL AUTO_INCREMENT,
`E_Date` date NOT NULL,
`E_S_ID` int(11) NOT NULL,
`E_RechnungsNr` varchar(45) NOT NULL,
`E_RechnungsDatei` varchar(45) NOT NULL,
PRIMARY KEY (`E_ID`),
UNIQUE KEY `E_RechnungsNr_UNIQUE` (`E_RechnungsNr`),
KEY `Einkauf_Shop_ID_idx` (`E_S_ID`),
CONSTRAINT `Einkauf_Shop_ID` FOREIGN KEY (`E_S_ID`) REFERENCES `Shop` (`S_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8
SHOW CREATE TABLE Item;
CREATE TABLE `Item` (
`I_ID` int(11) NOT NULL AUTO_INCREMENT,
`I_Name` varchar(45) NOT NULL,
`I_Preis` decimal(6,2) NOT NULL,
`I_E_UQ` varchar(45) NOT NULL,
`I_Menge` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`I_ID`),
KEY `Item_Einkauf_ID_idx` (`I_E_UQ`),
CONSTRAINT `Item_Einkauf_RechnungsNr_UQ` FOREIGN KEY (`I_E_UQ`) REFERENCES `Einkauf` (`E_RechnungsNr`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
SHOW CREATE TABLE SHOP;
CREATE TABLE `Shop` (
`S_ID` int(11) NOT NULL AUTO_INCREMENT,
`S_Name` varchar(45) NOT NULL,
`S_EMail` varchar(45) NOT NULL,
`S_Website` varchar(45) NOT NULL,
PRIMARY KEY (`S_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
MfG
spiderhoomer