Ciao a tutti.
Ho un problema con l'utilizzo del metodo mysql_insert_id() . Da quanto ho capito questo metodo dovrebbe ritornare il valore AUTO_INCREMENT dell'ultima INSERT effettuata nell ultima connessione al database, ma non so perchè
mi restituisce sempre 0 , come se nella insert che effetuo non ci sia un valore AUTO_INCREMENT.
Allora, ho una tabella OGGETTO col campo ID autoincrement
+-------------+---------------------------+-----+---------+------------+------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------------+-----+---------+------------+------------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
qui posto il codice
Codice PHP:
public function salvaNuovoOggetto($nuovo,&$request){
require_once 'Settings.php';
//istanzio classe mysqli
$mysqli = new mysqli();
//connessione al database server
$mysqli->connect(Settings::$db_host,
Settings::$db_user,
Settings::$db_password,
Settings::$db_name);
//verifico la presenza di errori
if($mysqli->connect_errno!=0){
//gestione errore
$idErrore = $mysqli->connect_errno;
$msg=$mysqli->connect_error;
error_log("Errore nella connessione al server
$idErrore : $msg",0);
echo "Errore nella connessione $msg";
}else{
//assegnamento valori alle variabili
$user = $_SESSION[BaseController::user];
$username_user=$user->getUsername();
$password_user=$user->getPassword();
$tipologia_id = UserCrea::getIdTipologia($request['oggettotipodate']);
$catalogo_id= UserCrea::getIdCatalogo($username_user,$password_user) ;
$nomeOggetto=$request['nomeprodottodate'];
$schermo=$request['schermoparamdate'];
$ram=$request['RAMparamdate'];
$cpu=$request['CPUparamdate'];
$hd= $request['HDparamdate'];
$so= $request['SOparamdate'];
$descrizione=$request['Descrizparamdate'];
$nArticoli=$request['Numberparamdate'];
$prezzo=$request['Prezzoparamdate'];
//preparo la query di inserimento dei dati DA INSERIRE ID DEI VENDITORI IN $venditori
$query="INSERT INTO oggetto
( id, nomeOggetto, catalogo_id, tipologia_id,
schermo, ram, cpu, hd, so, descrizione, nArticoli, prezzo,date)
VALUES ( DEFAULT, '$nomeOggetto',$catalogo_id,
$tipologia_id,'$schermo','$ram','$cpu',
'$hd','$so','$descrizione','$nArticoli',$prezzo,CURDATE())";
//lancio la query
$result=$mysqli->query($query);
//controllo l'esito della query
if($mysqli->errno > 0){
//errore nell'esecuzione
error_log("Errore nell'esecuzione della query $mysqli->errno : $mysqli->error",0);
}else{
//recupero l'id autoincrement generato da MYSQL per il nuovo record inserito
$new_oggett_id= mysql_insert_id();
Non so perchè mi torna come risultato sempre zero...sicuramente qualcuno mi potrà dare delucidazioni in proposito..