2010-02-22 3 views

Antwort

3

Ihre INSERT Behandeln Sie die gleiche wie ein SELECT und verwenden Sie in Ihren INSERT-Abfrage RÜCKKEHR:

INSERT INTO foo (bar) VALUES ('Doe') RÜCKGABE id;

Holen Sie das Ergebnis und Sie sind fertig. Arbeitet seit Version 8.2

2

Insert_ID() in adodb kehrt leeren Wert oder in einigen Fällen zurückgeben 0

Die postgresql Ich arbeitete in Version 9.1 ist.

$_sql = 'INSERT INTO '.$_table.' ('; 
$_sql .= implode(', ',$arr_fld_names); 
$_sql .= ") VALUES ('"; 
$_sql .= implode("', '",$arr_fld_values); 
$_sql .= "')"; 

if ($echo){ 
    echo $_sql; 
} 

$_return = $this->Execute($_sql); 
$this->mLastInsertedId = $this->mConn->Insert_ID(); // Keep track of the last inserted ID. 

Edit: ich eine schmutzige Art und Weise hinzugefügt haben:

$_sql = 'INSERT INTO '.$_table.' ('; 
$_sql .= implode(', ',$arr_fld_names); 
$_sql .= ") VALUES ('"; 
$_sql .= implode("', '",$arr_fld_values); 
$_sql .= "') RETURNING id"; 

if ($echo){ 
    echo $_sql; 
} 

$_return = $this->Execute($_sql); 
preg_match_all('/([\d]+)/', $_return, $ret_val); 
$this->mLastInsertedId = $ret_val[0][0]; // Keep track of the last inserted ID. 
7

Dieser Code funktioniert gut:

$insertId = $adodb->getOne("INSERT INTO test (str) values ('test') RETURNING id"); 
Verwandte Themen