Mysql
 sql >> Database >  >> RDS >> Mysql

ottenere mysql_insert_id() durante l'utilizzo di ON DUPLICATE KEY UPDATE con PHP

Ecco la risposta, come suggerito da Alexandre:

quando usi id=LAST_INSERT_ID(id) imposta il valore di mysql_insert_id =l'ID aggiornato, quindi il tuo codice finale dovrebbe essere simile a:

<?
    $query = mysql_query("
        INSERT INTO table (column1, column2, column3) 
        VALUES (value1, value2, value3) 
        ON DUPLICATE KEY UPDATE
            column1 = value1, 
            column2 = value2, 
            column3 = value3, 
            id=LAST_INSERT_ID(id)
    ");
    $my_id = mysql_insert_id();

Questo restituirà il valore corretto per $my_id indipendentemente dall'aggiornamento o dall'inserimento.