webForumDet fria alternativet

index och SQLSTATE

3 svar · 432 visningar · startad av tanten

tantenMedlem sedan nov. 20051 596 inlägg
#1

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.

rhdfMedlem sedan okt. 2007446 inlägg
#2

"1062 Duplicate entry 'ett namn' for key 2."
tolkar jag som att du försöker uppdatera ett fält som måste ha unika värden

tantenMedlem sedan nov. 20051 596 inlägg
#3

Och fältet är unikt, tar jag bort det och uppdaterar något i "bio", så uppdateras raden, men då skapas det dessutom en ny rad med samma namn men utan den uppdaterade bio också...

@ndersMedlem sedan juni 200032 969 inlägg
#4

Det råkar inte vara trainer.php koden ovan ligger i? Om så är fallet - kan det inte vara så att du hamnar i else-delen efter att du kör header-raden som skickar dig till trainer.php?

edit: nu ser jag att det inte verkar vara det - så jag kanske skulle hålla mig härifrån - jag kan ju inget om php egentligen.

256 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
131 ms — hämta forumlista (db)
123 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)