---
title: "index och SQLSTATE"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/174432-index-och-sqlstate"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "tanten"
published: "2008-09-30T11:41:38.000Z"
updated: "2008-09-30T16:14:30.000Z"
replies: 3
views: 436
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/174432-index-och-sqlstate"
---

# index och SQLSTATE

## #1 — tanten, 2008-09-30T11:41Z

Jag kommer till ett formulär via den här länken:

```php
<a href="editTrainer.php?train=<?=$r['id']?>">Edit</a>
```

Datan hämtas 

```php
$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

```php
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.

Permalänk: https://www.webforum.nu/p/174432

## #2 — rhdf, 2008-09-30T13:11Z

"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

Permalänk: https://www.webforum.nu/p/2144671

## #3 — tanten, 2008-09-30T14:08Z

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å...

Permalänk: https://www.webforum.nu/p/2144680

## #4 — @nders, 2008-09-30T16:14Z

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.

Permalänk: https://www.webforum.nu/p/2144706

---

Tråden på webben: https://www.webforum.nu/amne/php/174432-index-och-sqlstate
