Bekijk Volledige Versie : MYSQL: insert into voegt 2 records toe ipv. 1... please help!
Wat kan hier nu toch fout lopen, ik zit al gans de dag te zoeken, maar vind
geen oplossing:
---
$sql_vacatures = "INSERT INTO vacatures (naam_voornaam) VALUES ('$naam')";
mysql_query($sql_vacatures);
mysql_close();
header("Location: index.php?pagina=vacatures");
exit;
--
Het probleem is dus dat ie telkens 2 records toevoegd in de database in
plaats van 1.
Hans Wolters
09/05/03, 19:50
On Fri, 09 May 2003 17:07:45 GMT, Kevin <info_NOSPAM_@webmasterlinks.be> wrote:
> Wat kan hier nu toch fout lopen, ik zit al gans de dag te zoeken, maar vind
> geen oplossing:
>
> ---
> $sql_vacatures = "INSERT INTO vacatures (naam_voornaam) VALUES ('$naam')";
> mysql_query($sql_vacatures);
Gooi een unique index op naam_voornaam en naam_achternaam (als je die hebt).
alter table vacatures add unique idx_vacnaam (naam_voornaam, naam_achternaam);
Vervolgens kijk je in je script of je een error 1062 (in het geval van mysql)
krijgt.
Grtz,
Hans
--
phpReview : http://phpReview.nl.linux.org/
Daniel Tryba
09/05/03, 20:20
Hans Wolters <hans@e35203.upc-e.chello.nl.invalid> wrote:
>> Wat kan hier nu toch fout lopen, ik zit al gans de dag te zoeken, maar vind
>> geen oplossing:
>>
>> ---
>> $sql_vacatures = "INSERT INTO vacatures (naam_voornaam) VALUES ('$naam')";
>> mysql_query($sql_vacatures);
>
> Gooi een unique index op naam_voornaam en naam_achternaam (als je die hebt).
Dat is symptoom bestrijding. De OP zou eens goed naar zijn flow moeten
kijken (en hier meer info over geven) en zijn mysql_query()'s te loggen.
--
Daniel Tryba
Hans Wolters
09/05/03, 20:50
On Fri, 9 May 2003 18:18:37 +0000 (UTC), Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote:
> Hans Wolters <hans@e35203.upc-e.chello.nl.invalid> wrote:
>>> Wat kan hier nu toch fout lopen, ik zit al gans de dag te zoeken, maar vind
>>> geen oplossing:
>>>
>>> ---
>>> $sql_vacatures = "INSERT INTO vacatures (naam_voornaam) VALUES ('$naam')";
>>> mysql_query($sql_vacatures);
>>
>> Gooi een unique index op naam_voornaam en naam_achternaam (als je die hebt).
>
> Dat is symptoom bestrijding. De OP zou eens goed naar zijn flow moeten
> kijken (en hier meer info over geven) en zijn mysql_query()'s te loggen.
Ik kan me natuurlijk vergissen maar het is imho helemaal niet slecht om
een unieke index voor dit soort gevallen te gebruiken. Niet zelden kom ik
code tegen waarbij de maker eerst kijkt of er een waarde al aanwezig is en
gooit het er dan pas in.
Hans
--
phpReview : http://phpReview.nl.linux.org/
Daniel Tryba
10/05/03, 14:20
Hans Wolters <hans@e35203.upc-e.chello.nl.invalid> wrote:
>>> Gooi een unique index op naam_voornaam en naam_achternaam (als je die hebt).
>>
>> Dat is symptoom bestrijding. De OP zou eens goed naar zijn flow moeten
>> kijken (en hier meer info over geven) en zijn mysql_query()'s te loggen.
>
> Ik kan me natuurlijk vergissen maar het is imho helemaal niet slecht om
> een unieke index voor dit soort gevallen te gebruiken. Niet zelden kom ik
> code tegen waarbij de maker eerst kijkt of er een waarde al aanwezig is en
> gooit het er dan pas in.
Zekers, in sommige gevallen kan het verdomt handig zijn, echter als er
een query meerdere malen wordt uitgevoerd terwijl het maar 1 keer zou
moeten, dan is er fundamenteel iets goed mis.
--
Daniel Tryba
Hans Wolters
10/05/03, 15:20
On Sat, 10 May 2003 12:06:33 +0000 (UTC), Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote:
> Hans Wolters <hans@e35203.upc-e.chello.nl.invalid> wrote:
>>>> Gooi een unique index op naam_voornaam en naam_achternaam (als je die hebt).
>>>
>>> Dat is symptoom bestrijding. De OP zou eens goed naar zijn flow moeten
>>> kijken (en hier meer info over geven) en zijn mysql_query()'s te loggen.
>>
>> Ik kan me natuurlijk vergissen maar het is imho helemaal niet slecht om
>> een unieke index voor dit soort gevallen te gebruiken. Niet zelden kom ik
>> code tegen waarbij de maker eerst kijkt of er een waarde al aanwezig is en
>> gooit het er dan pas in.
>
> Zekers, in sommige gevallen kan het verdomt handig zijn, echter als er
> een query meerdere malen wordt uitgevoerd terwijl het maar 1 keer zou
> moeten, dan is er fundamenteel iets goed mis.
Dat kan al voorkomen als een bezoeker op reload klikt. Tuurlijk, je kunt
dat ook afvangen maar waarom zou je dat in een script taal doen als een
dbserver dat veel sneller voor je kan doen.
Hans
--
phpReview : http://phpReview.nl.linux.org/
Rene Pijlman
10/05/03, 15:50
Kevin:
>$sql_vacatures = "INSERT INTO vacatures (naam_voornaam) VALUES ('$naam')";
>mysql_query($sql_vacatures);
>mysql_close();
>
>header("Location: index.php?pagina=vacatures");
>exit;
>--
>
>Het probleem is dus dat ie telkens 2 records toevoegd in de database in
>plaats van 1.
Als het inderdaad 'telkens' is en niet incidenteel, en als wat
je hier post alle relevante code is, dan is de enige mogelijke
verklaring dat deze code 2 keer wordt uitgevoerd, al dan niet in
index.php, of dat op een andere manier een record wordt
toegevoegd in index.php.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
> Als het inderdaad 'telkens' is en niet incidenteel, en als wat
> je hier post alle relevante code is, dan is de enige mogelijke
> verklaring dat deze code 2 keer wordt uitgevoerd, al dan niet in
> index.php, of dat op een andere manier een record wordt
> toegevoegd in index.php.
Wel 'telkens', dat is ook raar, want na zo'n 30 keren de code aanroepen en
dus 2x dezelfde records in te voegen, doet ie er toch 1 van de 30 goed. Dus
het ligt zeker niet aan foute code. De enige oplossing die ik nu voor ogen
heb, is om de record in te voegen, en als er 2 records zijn toegevoegd ipv.
1, dan de laatste verwijderen met een DELETE.
Rene Pijlman
10/05/03, 19:05
Kevin:
>Wel 'telkens', dat is ook raar, want na zo'n 30 keren de code aanroepen en
>dus 2x dezelfde records in te voegen, doet ie er toch 1 van de 30 goed. Dus
>het ligt zeker niet aan foute code.
Dat is een merkwaardige conclusie. Elke andere conclusie, zoals
dat jij een maandagochtendexemplaar van MySQL Zou hebben lijkt
me minstens een miljoen keer onwaarschijnlijker.
>De enige oplossing die ik nu voor ogen heb, is om de record in te voegen,
>en als er 2 records zijn toegevoegd ipv. 1, dan de laatste verwijderen met een DELETE.
Dit is onzin, je kunt beter de oorzaak opsporen. Maar aangezien
je ons geen nieuwe informatie hebt aangereikt kunnen wij je
verder niet goed helpen.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl