dedlfix: MySQL: letzte autoincrement ID auslesen

Beitrag lesen

Hi!

Welche Variante ist dann (warum) zu bevorzugen?
Der Konsistenz wegen immer die des verwendeten Systems. Gemischt zwei Systeme zu verwenden, ist keine so gute Idee, weil/wenn du nicht weißt, wie das andere System intern arbeitet und welche Nebenwirkungen dein Eingriff hat.
Was heißt das jetzt? Ich verwende PHP und MySQL. Was ist jetzt zu bevorzugen?

Du verwendest - aus welchem Grund auch immer - ezSQL als eine Abstraktionsschicht zum DBMS. Du solltest dann konsequent diese Abstraktionsschicht verwenden und nicht nebenher ein eigenes DBMS-Handling veranstalten.

Richtig. Ich bekomme nach dem Aufruf mit ezSQL

$lastid = $ez->get_results("SELECT LAST_INSERT_ID();");

var_dump();


> folgende Ausgabe:  
> array(1) {  
>   [0]=>  
>   object(stdClass)#7 (1) {  
>     ["LAST\_INSERT\_ID()"]=>  
>     string(1) "2"  
>   }  
> }  
> Wie greife ich nun auf den String zu?  
  
Du kannst es dir mit einem Alias einfacher machen  
  
  SELECT LAST\_INSERT\_ID() foo  
  
Dann reicht $lastid[0]->foo.  
  
Eigenschaften, die wie deine "komische" Zeichen enthalten, sind etwas schwerer zu handhaben. Zunächst muss man wissen, dass man statt einer einfachen Zeichenkette, die den Eigenschaftennamen repräsentieren soll, auch einen komplexen zu berechnenden Ausdruck verwenden kann, den man in {}-Klammern setzen muss:  
  
  $objekt->{ausdruck}  
  
Als Ausdruck kann man nun einen einfachen String  
  
  $lastid[0]->{'LAST\_INSERT\_ID()'}  
  
oder auch was anderes berechnetes angeben:  
  
  $objekt->{42 + 23}  
  
  
Lo!