mysql_insert_id IN mysql_query

Transporter

Mitglied
Hallo Leute !

Es geht um diesen Codeschnipsel:

PHP:
$com_id = mysql_insert_id($gbl);

mysql_query
  ("INSERT INTO com_user_unit (com_id, user_unit_id) VALUES ".
   "('$com_id', '$user_unit->user_unit_id')", $gbl);

Ich will mir eigentlich nur den Zwischenschritt mit dem Abspeichern der Rückgabe ID erspahren, indem ich mysql_insert_id() gleich in den mysql_query eintrage, aber irgendwie funktioniert das nicht.

Also irgendwie so:
PHP:
mysql_query
  ("INSERT INTO com_user_unit (com_id, user_unit_id) VALUES ".
   "('mysql_insert_id($gbl)', '$user_unit->user_unit_id')", $gbl);

Könnt Ihr mir da weiterhelfen?
 
Hi,

in Strings werden keine Funktionen ausgewertet.

PHP:
mysql_query
  ("INSERT INTO com_user_unit (com_id, user_unit_id) VALUES ('". mysql_insert_id($gbl) . "', '$user_unit->user_unit_id')", $gbl);

LG
 
Okay super, vielen dank.

Ich wir mir eigentlich sicher, daß ich das ausprobiert hätte :-9

Jetzt komm ich gleich zu meiner nächsten Frage.
Mit der zurückgegebene ID möchte ich später noch weiter arbeiten.
Allerdings ungern indem ich sie wie vorher in eine Variable packe.

Mit mysql_insert_id kann ich leider nicht arbeiten, da ich zwischenzeitlich weitere Inserts mache. Ich habe gelesen, daß es die SQL Funktion LAST_INSERT_ID() gibt, sie liefert den letzen Autoincrement Wert zurück, also genau daß was ich brauche, aber wie komme ich an den Wert ran?

Ich möchte es quasi so haben:
PHP:
mysql_query
  ("INSERT INTO com_head (com_id, head) VALUES ".
   "('LAST_INSERT_ID', 'Kampfbericht von $unit->name.')", $gbl);

Könnt Ihr mir noch mal helfen?
 
Hi,

Jetzt komm ich gleich zu meiner nächsten Frage.
Mit der zurückgegebene ID möchte ich später noch weiter arbeiten.
Allerdings ungern indem ich sie wie vorher in eine Variable packe.

Wieso eigentlich nicht? Genau dazu sind Variablen doch da.

Ich habe gelesen, daß es die SQL Funktion LAST_INSERT_ID() gibt, sie liefert den letzen Autoincrement Wert zurück, also genau daß was ich brauche

Und was hilft Dir das, wenn Du zwischenzeitlich schon weitere INSERTs gemacht hast?

LG
 
Das hilft mir schon, denn LAST_INSERT_ID ist der letzte Autoincrement wobei myqsl_insert_id der letzte Insert Wert (evtl 0) ist!
 
Zuletzt bearbeitet:
Hi,

ich weiß zwar immer noch nicht, was Du gegen eine Variable hast, zumal man bei entsprechender Benennung auch nach Monaten noch auf den ersten Blick sieht, wo diese ID her kommt, im Gegensatz zu einem LAST_INSERT_ID() in der Abfrage, aber wenn Du das unbedingt so willst, dann benutz es halt.

LG
 
Zurück