Zum Inhalt springen

mysql_insert_id Problem ??


Aiun

Empfohlene Beiträge

hi,

frage:

wenn ich ein Insert Statement absetze und direkt danach den PHP Befehl mysql_insert_id() aufrufe, ist das dann wirklich der Auto-Increment dieses letzten Inserts,

oder kann es sein das andere benuzter in der zwischenzeit eigene inserts absetzen und mir somit den Wert verfälschen ?

falls ja:

wenn ich sage:

Transaktion Start

insert

mysql_insert_id

transaktion commit

ist dann sichergestellt das ich den richtigen Wert habe ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

unterschiedliche Ressource kennungen geht ja nicht ^^,

das Beispiel wären 100/1000 oder wiviele User auch immer gleichzeitig auf dem System, und, z.B. für Sessions, oder Posts im Forum o.ä. 20 machen im gleichen moment ein Insert....was kommt dann raus ?

die verbindungskennung ist, weil es das gleiche Script ist, ebenfalls gleich. (oder ist sie für jede DB Session, also für "jeden" der das Script benutzt unterschiedlich ?)

ich hoffe einer von euch kennt sich damit ausreichend aus....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da die Verbindung zur Datenbank für jede Client-Verbindung getrennt aufgebaut wird, wirst Du bei der Benutzung der Funktion mysql_insert_id() keine Probleme mit anderen Benutzern bekommen.

Im Zweifelsfall würde ich einfach einen WRITE LOCK auf die Tabelle setzen, so dass in der Zeit zwischen INSERT und auslesen der Last-Insert-ID kein weiterer INSERT stattfinden kann.


mysql_query('LOCK TABLES asdf WRITE');

mysql_query('INSERT INTO asdf (name) VALUES (\'blub\')');

$resQuery = mysql_query('SELECT LAST_INSERT_ID() AS intID');

if ($resQuery && ($arrRow = mysql_fetch_assoc($resQuery))) {

  $intID = $arrRow['intID'];

}

else $intID = 0;

mysql_query('UNLOCK TABLES');

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...