Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verwenden eines Datensatzes, der gerade erst erstellt wurde

Empfohlene Antworten

Veröffentlicht

Hi

Ich hab in PHP folgendes Problem:

Ich erstell einen Datensatz in einer SQL Datenbank. Dieser Datensatz bekommt eine ID Nummer, die per auto_increment hochgezählt wird.

In der nächsten Zeile brauch ich aber für eine Abfrage genau diese ID Nummer, die ich gerade erst erzeugt hab.

Bisher hab ich das so gelöst, dass ich einfach den letzten Datensatz genommen hab, der erzeugt worden ist, aber das ist ja irgendwie nicht ideal. Oder kann man das lassen, da die Wahrscheinlichkeit zu gering ist, dass 2 Datensätze in derselben Milisekunde erzeugt werden, bis die 2. Abfrage durch ist.

Gibt es da noch elegante Lösungen?

Noxy

Welche Datenbank?

Gruß Jaraz

MySQL unter Linux

Hi,

SELECT * FROM deineTabelle WHERE deineId=LAST_INSERT_ID()

Das ganze mit derselben Connection ausgeführt, ist Thread sicher.

Gruß Jaraz

Hallo Jaraz!

Neben der MySQL-Funktion LAST_INSERT_ID() gibt es auch noch die PHP-Funktion mysql_insert_id(). Diese hat den Vorteil, dass du den Overhead für eine weitere SQL-Abfrage einsparst.

Da er geschrieben hat das er das für eine Abfrage braucht, ist der Aufwand so geringer, da der Wert nicht erst aus der Connection abgefragt werden muss, sondern alles Datenbank intern abläuft.

mysql_insert_id() arbeitet nur korrekt wenn die auto_increment Spalte von Typ INT ist. Bei BIGINT versagt sie z.B. weswegen ich nur drauf zurückgreife, wenn es unbedingt nötig ist.

Aber in diesem Fall würde das wahrscheinlich auch funktionieren. Muss der Fragesteller sich halt aussuchen, wie er es macht. ;)

Gruß Jaraz

Hi

Ich hab jetzt mal die SQL Funktion verwendet und es klappt, als Datentyp hab ich sowiso nur INT, da sollte es keine Probleme geben.

Vielen Dank an alle

Noxy

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.