Font
[thread]7970[/thread]

DBI-Fehlermeldungen abfangen: duplicate entry, etc.



<< >> 4 entries, 1 page
steinwolf
 2006-05-11 18:36
#65979 #65979
User since
2003-08-04
367 articles
BenutzerIn
[default_avatar]
Hallo,

ich pflege mittels DBI Datensätze in eine mysql-db ein. manchmal kommt es nun vor, dass der primary key doppelt da ist. dann soll das programm einfach weiterlaufen und die fehlermeldung ignorieren. Anscheinend unterbricht aber immer dort mein Programm.

Wie kann ich das unterbinden?

Code: (dl )
1
2
3
4
5
DBD::mysql::st execute failed: Duplicate entry 'http://www.rechtlegal.de/' for k
ey 1 at mysql_subs.pm line 31.
SQL-INSERT Problem: Duplicate entry
'http://www.rechtlegal.de/' for key 1 at mys
ql_subs.pm line 31.



mfg
steinwolf
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
docsnyder
 2006-05-11 18:38
#65980 #65980
User since
2005-09-08
300 articles
BenutzerIn
[Homepage] [default_avatar]
Warum prüfst Du vor dem insert nicht einfach, ob der key schon existiert? So würde man das eigentlich machen, wenn man's richtig macht ;o)

Gruß, Doc
Strat
 2006-05-11 18:44
#65981 #65981
User since
2003-08-04
5246 articles
ModeratorIn
[Homepage] [default_avatar]
wenn du ihn einfach stillschweigend ueberschreiben willst, dann koenntest du bei mysql anstelle von INSERT REPLACE nehmen...

dass das programm abbricht, liegt an dir; arbeitest du beim connect mit RaiseError => 1 ? wenn ja, dann packe das insert in einen eval-Block, oder verzichte auf das RaiseError =>1 und kuemmere dich selbst um eine angemessene fehlerbehandlung.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
steinwolf
 2006-05-11 19:03
#65982 #65982
User since
2003-08-04
367 articles
BenutzerIn
[default_avatar]
@docsnyder, will zeit sparen ;-)

danke strat, ich verwende jetzt wirklich replace..
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
<< >> 4 entries, 1 page



View all threads created 2006-05-11 18:36.