Avatar billede human Nybegynder
25. oktober 2003 - 23:48 Der er 7 kommentarer og
1 løsning

Duplicate ting ved mere end én insert

Jeg har lavet en form. Men når jeg har smidt mere end 1 række i, så skriver den:
Duplicate entry '' for key 2

Hvad i alverdenm betyder det, og hvor retter jeg fejlen. Går ud fra den ligger i database strukturen, og ikke i scriptet.
Avatar billede human Nybegynder
25. oktober 2003 - 23:50 #1
Og så lige en anden ting. De felter jeg har indtastet, der står ikke noget i dem i tabellen. De er tomme bortset fra id som bliver sat af sig selv. Jeg er ret sikker på det ikke er mine variabler den er gal med.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 23:53 #2
hvis der ikke står noget i felterne, og eet af dem er unique, får du den
fejl, for så er der jo to tomme felter - det siger du der ikke må være.

Kig derfor på det sted du putter ting i tabellen - der har du en fejl. Felterne
skal jo nok ikke være tomme.
Avatar billede human Nybegynder
25. oktober 2003 - 23:59 #3
Det kan godt være det er mig der er dum.

Men er der noget galt i at gøre sådan her:

$tvlogin = htmlspecialchars($login,ENT_QUOTES);
$tvpass = htmlspecialchars($pass,ENT_QUOTES);
$tvfirstname = htmlspecialchars($firstname,ENT_QUOTES);
$tvlastname = htmlspecialchars($lastname,ENT_QUOTES);
$tvemail = htmlspecialchars($email,ENT_QUOTES);
$tvcontact_number = htmlspecialchars($contact_number,ENT_QUOTES);


$insert = "INSERT INTO users(login,pass,firstname,lastname,email,contact_number)
        VALUES('$login','$pass','$firstname','$lastname','$email','$contact_number')";
mysql_query($insert) || die(mysql_error());

?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 00:13 #4
$insert = "INSERT INTO users(login,pass,firstname,lastname,email,contact_number)
        VALUES('$tvlogin','$tvpass','$tvfirstname','$tvlastname','$tvemail','$tvcontact_number')";
Avatar billede human Nybegynder
26. oktober 2003 - 00:17 #5
Hmm... Det jeg vil gøre med ex $tvlogin, er at køre den gennem htmlspecialchars, så den nye var der kommer ud af det hedder $login.

Men hvis jeg sætter $tvlogin i tabellen, er der vel ingen grund til at køre den igennem htmlspe... Eller er der noget jeg har misforstået?
Avatar billede human Nybegynder
26. oktober 2003 - 00:19 #6
Men selv om jeg ændre det til $tv, siger den stadig Duplicate entry '' for key 2
.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 00:20 #7
Så skal du nok beholde din sql-sætning som den var og skrive

$login = htmlspecialchars($tvlogin,ENT_QUOTES);

og tilsvarende
Avatar billede human Nybegynder
26. oktober 2003 - 00:24 #8
EJ DOH!!!

Nå. Kunne være jeg skulle gå i seng. Mange tak for alt din hjælp.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester