Anfänger: wie ID nach INSERT ermitteln?

Anfänger: wie ID nach INSERT ermitteln?

am 21.04.2008 18:05:23 von Michael Weis

Hallo,

Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
möglich oder gibt es da eine andere Lösung?

Es geht um einen kleinen Shop, die Gefahr konkurrierender Zugriffe geht
aktuell gegen Null, aber wer weiß was die Zukunft bringt..

Sidn die Beispiele unter

in Ordnung (Abschnitt 'Transaktionen unter MySQL') oder muss ich etwas
Wichtiges dabei beachten?


Danke für Tipps & Gruß,

Michael

Re: Anfänger: wie ID nach INSERT ermitteln?

am 22.04.2008 09:24:53 von Joerg Behrens

Michael Weis schrieb:
> Hallo,
>=20
> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt =

> werden.

mysql_insert_id(). Sollte ein DBWrapper zum Einsatz kommen must du in=20
die DokAPI dessen gucken. I.d.R werden dann aber gleich Sequenzen verwend=
et.

> Ist das, um es sauber zu machen, nur transaktionsorientiert=20
> möglich oder gibt es da eine andere Lösung?
>=20
> Es geht um einen kleinen Shop, die Gefahr konkurrierender Zugriffe geht=
=20
> aktuell gegen Null, aber wer weiß was die Zukunft bringt..
>=20
> Sidn die Beispiele unter=20
> html>=20
> in Ordnung (Abschnitt 'Transaktionen unter MySQL') oder muss ich etwas =

> Wichtiges dabei beachten?

Nein die sind veraltet und misachten viele Dinge.
- SET NAMES fehlt und somit wird der Zeichensatz vollkommen=20
ausseracht gelassen
- Es wird mysql_db_query() verwendet welches depricated ist
- SELECT * ....
- Kein Escaping
- Eine Empfehlung auf MYSQL_FETCH_OBJECT ist unsinnig.

Gruss
Joerg


--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Anfänger: wie ID nach INSERT ermitteln?

am 22.04.2008 10:02:52 von Michael Weis

Joerg Behrens wrote at 22.04.2008 09:24

>> Sidn die Beispiele unter
>>
>> in Ordnung (Abschnitt 'Transaktionen unter MySQL') oder muss ich etwas
>> Wichtiges dabei beachten?
>
> Nein die sind veraltet und misachten viele Dinge.
> - SET NAMES fehlt und somit wird der Zeichensatz vollkommen
> ausseracht gelassen
> - Es wird mysql_db_query() verwendet welches depricated ist
> - SELECT * ....
> - Kein Escaping
> - Eine Empfehlung auf MYSQL_FETCH_OBJECT ist unsinnig.

OK, danke für die Hinweise!

Gruß, Michael

Re: Anfänger: wie ID nach INSERT ermitteln?

am 22.04.2008 11:12:39 von Gerome Muent

* Michael Weis wrote:

> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
> werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
> möglich oder gibt es da eine andere Lösung?

http://de3.php.net/manual/de/function.mysql-insert-id.php

Gérôme

--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt@bmservices.de

Re: Anfänger: wie ID nach INSERT ermitteln?

am 22.04.2008 11:30:15 von Tim Jagusch

Hallo Michael,

Michael Weis schrieb:
> Hallo,
>
> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
> werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
> möglich oder gibt es da eine andere Lösung?

du kannst dafür auf mysql_insert_id zurückgreifen, das gibt dir die
ID des letzten von dir eingefügten Datensatzes.

http://de3.php.net/manual/de/function.mysql-insert-id.php

> Es geht um einen kleinen Shop, die Gefahr konkurrierender Zugriffe geht
> aktuell gegen Null, aber wer weiß was die Zukunft bringt..

Wieso probierst du es nicht gleich mit Transaktionen, du ersparst dir
doch die Mehrarbeit falls es wirklich mal mehr aufrufe werden,
alternativ kannst du den Shop auch so programmieren das du keine
Transaktionen benötigst außer es geht um Sachen wie Verfügbarkeit
eines Artikels.

> Danke für Tipps & Gruß,
>
> Michael

Viele Grüße,
Tim

Re: Anfänger:wie ID nach INSERT ermitteln?

am 22.04.2008 11:30:49 von David Fuhr

Michael Weis wrote in
news:fuie00$1e4$1@newsreader2.netcologne.de:

> Hallo,
>
> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
> werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
> möglich oder gibt es da eine andere Lösung?

Crosspostings sind böse. Außerdem war das Posting in
de.comp.datenbanken.mysql ohnehin besser aufgehoben.

Re: Anfänger: wie ID nach INSERT ermitteln?

am 22.04.2008 19:10:37 von Michael Weis

David Fuhr wrote at 22.04.2008 11:30
> Crosspostings sind böse. Außerdem war das Posting in
> de.comp.datenbanken.mysql ohnehin besser aufgehoben.

Es waren 2 Groups und F'up war gesetzt.

Micha

Re: Anfänger: wie ID nach INSERT ermitteln?

am 23.04.2008 16:52:39 von Ulf Kadner

Michael Weis wrote:

> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
> werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
> möglich oder gibt es da eine andere Lösung?

Als erstes kommts mal darauf an wie Du mit MySql arbeitest.

Wenn Du altmodisch über die mysql_* Funktionen arbeitest suchst Du nach:
http://de3.php.net/manual/en/function.mysql-insert-id.php

Mit PDO:
http://de3.php.net/manual/en/pdo.lastinsertid.php

> Sidn die Beispiele unter
>
> in Ordnung

Keine Ahnung, dazu müste ich die erst lesen.

MfG, Ulf

Re: Anfänger: wie ID nach INSERT ermitteln?

am 23.04.2008 17:28:42 von Matthias

Michael Weis schrieb:

> Nach einem INSERT soll die (AutoIncrement)ID des Datensatzes ermittelt
> werden. Ist das, um es sauber zu machen, nur transaktionsorientiert
> möglich oder gibt es da eine andere Lösung?

MySQL?

Was hindert Dich daran, einfach http://de.php.net/mysql-insert-id oder
LAST_INSERT_ID() zu nutzen?


Grüße, Matthias