Cześć,
tworzę prostą aplikację CRUD. Mam stworzoną prostą bazę maszyn (id, name, nr seryjny, właściciel). Ostatnie pole "właściciel" posiada klucz obcy. ID odpowiada nazwie z innej tabeli. Przy dodawaniu nowej maszyny, w tym właśnie właścicielu mam option z właścicielami pobieranymi z innej bazy i do tego domyślna wybrana wartość brak, której value to 0. I tu jest problem. Jeżeli dodaje nowy rekord z tym właśnie brakiem, wyskakuje mi taki błąd:
Warning: there was an error....Cannot add or update a child row: a foreign key constraint fails (materialdb
.machines
, CONSTRAINT machines_ibfk_1
FOREIGN KEY (owner
) REFERENCES machines_owner
(id
)) in C:\xampp\htdocs\materialdb\proccess\machine-proccess.php on line 21
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!isset($_POST['mname']) ||!isset($_POST['mname-sn']) || !isset($_POST['mname-ewidence']) )
{
echo '<h1 class="display">' . "Niektóre pola muszą zostać wypełnione" . '</h1>';
} else {
$stmt = $conn->prepare("INSERT INTO machines (name, sr, er, owner) VALUES (?, ?, ?, ?)");
$stmt->bind_param("sssi",$_POST['mname'] , $_POST['mname-sn'], $_POST['mname-ewidence'], $_POST['mname-owner']);
if(!$stmt->execute()){trigger_error("there was an error....".$conn->error, E_USER_WARNING);}
$stmt->close();
}
}
?>
Zmienianie wartości na null również nie działa. Ręcznie dodanie maszyny z nullem w tym miejscu w PHPmyadmin działa poprawnie. Od kilku dni próbuje to naprawić, ale bezskutecznie.
Pozdrawiam