• User Newbie

    [PHP/MYSQL]problemi con mysql_insert_id()

    Ciao a tutti. :gthi:
    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

    [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();[/PHP]
    

    $new_oggett_id assume sempre il valore zero, non riesco a capire dove sbaglio :?...sicuramente qualcuno mi potrà dare delucidazioni in proposito..