bjoern: mysql_insert_id() vor anlegen des datensatzes

hallo leute!

ich möchte ein datensatz in einer sql datenbank anlegen, der z.B. mit der id 125 (auto_increment) in der spalte bild den inhalt 125.jpg oder 125.gif oder 125.png... (id+dateiendung einer bilddatei) enthält.

nun weiß ich ja die id noch nicht vor dem anlegen des datensatzes, so dass ich den bildnamen noch nicht festlegen kann.
müsste nach dem anlegen des datensatzes per mysql_insert_id() die id des letzten datensatzes abfragen und dann nachträglich den namen der bilddatei einfügen.

FRAGE: Kann ich dies auch in einem Schritt machen? Müsste dann wohl die id die beim einfügen des NÄCHSTEN datensatzes vergeben wird wissen und die bilddatei entsprechend benennen..

Hat jemand eine idee?

gruß&dank
björn

  1. Hallo Björn,

    ich möchte ein datensatz in einer sql datenbank anlegen, der z.B. mit der id 125 (auto_increment) in der spalte bild den inhalt 125.jpg oder 125.gif oder 125.png... (id+dateiendung einer bilddatei) enthält.

    ich nehme an, dass Deine Spalte "id" Träger des Primärschlüssels ist. Wenn das so ist, denke bitte daran, dass die einzige Aufgabe des Primärschlüssels die ist, einen Datensatz eindeutig zu identifizieren. Du möchtest nun dieser Spalte eine besondere Bedeutung zukommen lassen, danach soll Dein Bild benannt sein. Das ist in meinen Augen keine gute Idee.

    nun weiß ich ja die id noch nicht vor dem anlegen des datensatzes, so dass ich den bildnamen noch nicht festlegen kann.
    müsste nach dem anlegen des datensatzes per mysql_insert_id() die id des letzten datensatzes abfragen und dann nachträglich den namen der bilddatei einfügen.

    So könntest Du das machen, auch wenn ich das nicht für besonders sinnvoll halte. Fällt Dir nichts besseres für Deine Bilder ein?

    Freundliche Grüße

    Vinzenz

  2. echo $begrüßung;

    ... die id die beim einfügen des NÄCHSTEN datensatzes vergeben wird ...

    Hat jemand eine idee?

    SHOW TABLE STATUS FROM database LIKE 'table'
    zeigt u.a. den nächsten zu verwendenden auto_increment-Wert an. Du solltest Acht geben, dass du die Tabelle sperrst, sonst schnappt vielleicht jemand anderes diesen Wert weg.

    echo "$verabschiedung $name";