2010-02-22 12 views

Respuesta

3

a tratar su insertar el mismo como seleccionar y utilizar a volver en su INSERT-consulta:

INSERT INTO foo (bar) VALUES ('Doe') ID DEVUELTO;

Obtenga el resultado y listo. Funciona desde la versión 8.2

2

Insert_ID() en adodb retornos valor vacío o en algún caso se devolverá 0.

El postgresql que trabajé se encuentra en la versión 9.1.

$_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. 

Editar: He añadido una manera sucia:

$_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

Este código funciona muy bien:

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