Mysql
 sql >> Base de données >  >> RDS >> Mysql

obtenir mysql_insert_id() lors de l'utilisation de ON DUPLICATE KEY UPDATE avec PHP

Voici la réponse, suggérée par Alexandre :

lorsque vous utilisez l'id=LAST_INSERT_ID(id), il définit la valeur de mysql_insert_id =l'ID mis à jour -- votre code final devrait donc ressembler à :

<?
    $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();

Cela renverra la bonne valeur pour $my_id indépendamment de la mise à jour ou de l'insertion.