Jag kommer till ett formulär via den här länken:
<a href="editTrainer.php?train=<?=$r['id']?>">Edit</a>
Datan hämtas
$id = (int)$_REQUEST['train'];
if($id) {
// We have the ID, get the fl_tranare details...
$q = $conn->query("SELECT tran_name, bio FROM fl_tranare WHERE tranID=$id");
$train = $q->fetch(PDO::FETCH_ASSOC);
$q->closeCursor();
$q = null;
}
Om jag uppdaterar fomuläret
if(@$train['id']) { //<---rad 11
$sql = "UPDATE fl_tranare SET tran_name=?, bio=?
WHERE id=$train[id]";
}
//om ny utan id
else {
$sql = "INSERT INTO fl_tranare(tran_name, bio)
VALUES(?, ?)";
}
}
$stmt = $conn->prepare($sql);
$stmt->execute(array($_POST['tran_name'],
$_POST['bio']));
header("Location: trainer.php");
exit;
}
får jag
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'ett namn' for key 2.
Vilket jag inte förstår, aldrig sett en sådan Error och blir inte klokare av det jag hittat via googles.
Lägger jag då till
error_reporting(E_ALL);
så ser jag
Notice: Undefined index: train in C:\xxx\editTrainer.php on line 11
Vad har jag missat? En ny tränare går att lägga till, men inte att uppdatera en befintlig.