johny7: MySQL: letzte autoincrement ID auslesen

Beitrag lesen

Moin allerseits,

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.

Jup, jetzt kenne ich ja $ezsql->insert_id; Das ^^ war vorher und ich wollte jetzt nur wissen, wie ich das in dem Fall lösen müsste. Kann ja sein, dass mich so ein Fall mit komplizierten Ausdrücken in Objekten wieder mal trifft...

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  

Cool. Muss das nicht SELECT LAST\_INSERT\_ID() AS foo heißen?  
  

>   
> Dann reicht $lastid[0]->foo.  

Logisch.  
  
  

> 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()'}  

Genau danach habe ich gesucht. Danke.  
  

>   
> oder auch was anderes berechnetes angeben:  
>   
>   $objekt->{42 + 23}  

Das wäre adäquat zu $objekt->65 ?  
  
Grüße, JN

-- 
ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)  
http://www.johny7.de