Da Pinky: doppelte einträge verhindern?

hallo auch,

wenn ich in mysql daten eintrage und die spalte "unique" ist, dann ist ja sichergestellt das der wert nur einmal vorhanden ist, aber ich bekomme mit php eine fehlermeldung an der stelle - sowas wie "fehler, gibts schon". kann man das irgendwie unterdrücken?

und: gibts noch eine möglichkeit das ich nach dem insert gleich die neue id dieses inserts bekomme ohne nochmal mit einem "SELECT" drübergehen zu müssen?
also mein problem ist das ich - je nachdem ob meine db den ort schon kennt oder nicht - zuerst einträge in den tables "loc_state" und "loc_city" vornehmen muss und dann in table "location" zusammen mit country_id, state_id und city_id zu einer location_id zusammenfassen muss.
ich hab das mit LAST_INSERT_ID() zwar schonmal ausprobiert ( http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html ), allerdings funktioniert das irgendwie nicht - bekomme irgendwas um die 40 obwohl ich den table erst frisch angelegt und lediglich einen insert gemacht habe. imho müsste man an so eine funktion doch auch noch den namen des gefragten tables mit übergeben, oder?!

  1. hi,

    wenn ich in mysql daten eintrage und die spalte "unique" ist, dann ist ja sichergestellt das der wert nur einmal vorhanden ist, aber ich bekomme mit php eine fehlermeldung an der stelle - sowas wie "fehler, gibts schon". kann man das irgendwie unterdrücken?

    bin auch nur amateur, aber ich meine, mit INSERT IGNORE sollte das klappen

    Gruß
    Christian

  2. hi,

    wenn ich in mysql daten eintrage und die spalte "unique" ist, dann ist ja sichergestellt das der wert nur einmal vorhanden ist, aber ich bekomme mit php eine fehlermeldung an der stelle - sowas wie "fehler, gibts schon".

    Nein, diese Meldung bekommst du nicht von PHP, sondern von MySQL.

    kann man das irgendwie unterdrücken?

    Natürlich - Frage nach dem Ausführen der Query die DB, ob es einen Fehler gab, und wenn ja, welchen. mysql_error(), mysql_errno()

    und: gibts noch eine möglichkeit das ich nach dem insert gleich die neue id dieses inserts bekomme ohne nochmal mit einem "SELECT" drübergehen zu müssen?
    ich hab das mit LAST_INSERT_ID() zwar schonmal ausprobiert

    Geht idR. auch über mysql_insert_id() in PHP.

    allerdings funktioniert das irgendwie nicht - bekomme irgendwas um die 40 obwohl ich den table erst frisch angelegt und lediglich einen insert gemacht habe.

    Hast du die Anmerkungen beachtet, zu welchem Zeitpunkt du diese Funktion ausführen sollst?

    imho müsste man an so eine funktion doch auch noch den namen des gefragten tables mit übergeben, oder?!

    Nein. Diese Funktion interessiert sich lediglich für die benutzte Verbindung.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo!

    ich hab das mit LAST_INSERT_ID() zwar schonmal ausprobiert ( http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html ), allerdings funktioniert das irgendwie nicht

    Schau dir mal diesen Thread an.

    mfg
      frafu