phpbar.de logo

Mailinglisten-Archive

Re: unsubscribe etc.
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unsubscribe etc.



Andreas Vent-Schmidt schrieb am Mittwoch, den  7. Juli 1999:
> > Wenn jemand Fragen zu MySQL oder allgemein SQL-Problemen hat,
> > werde
> > ich im Rahmen meiner Zeit gerne zu Helfen versuchen.
> 
> Hallo Martin,
> 
> da habe ich doch glatt eine Frage...;-)

Das war gemein, weil ich gerade dann keine Zeit mehr hatte! :)

> Und zwar geht es um last_insert_id(), was ich auch mit Handbuch
> noch nicht zur Funktion gebracht habe.
[...]
> mysql_query("insert into myTable values(´´,´Meier´,´Hans´...)");
> 
> wobei das erste Feld ein auto_increment integer ist, und ich
> gleich anschliessend den neuen Wert dieses Feldes mit
> 
> select last_insert_id() from myTable
> 
> abfragen will, bekomme ich keinen vernuenftigen Wert. Woran kann
> das liegen?

Eins vorneweg:  Schreibe bei ähnlichen Problemen bitte nicht nur,
  daß irgendwas nicht richtig funktioniert, sondern _genau_, was
  passiert.  Dann kann Dir oft viel leichter geholfen werden!

Zum Problem:
  Es sollte einfach nur
    SELECT LAST_INSERT_ID();
  heißen.

  Denn dieser Wert wird _nicht_ jeweils pro Tabelle gespeichert,
  sondern einmal für alle Tabellen zusammen verwaltet und gibt immer
  die gesamt gesehen zuletzt eingefügte ID an.

Ein weiterer Punkt:
  Stilistisch fände ich es schöner und korrekter, eine AUTO_INCREMENT-
  Spalte mit einem der "magischen" Werte 0 oder NULL zu belegen und nicht
  mit '', da es sich doch um eine numerische Spalte handelt.  Das Einfügen
  von '' geht zwar auch, aber nur, weil dieser String vor dem Einfügen in
  eine Zahl konvertiert wird und halt den Wert 0 ergibt.

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ >
PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive