MySQL Forums
Forum List  »  German

Problem mit Insert bei PHP
Posted by: spiderhoomer 0
Date: December 30, 2017 10:07AM

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

Options: ReplyQuote


Subject
Views
Written By
Posted
Problem mit Insert bei PHP
789
December 30, 2017 10:07AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.