sql >> Database >  >> RDS >> Mysql

mysql_insert_id() krijgen tijdens het gebruik van ON DUPLICATE KEY UPDATE met PHP

Hier is het antwoord, zoals voorgesteld door Alexandre:

wanneer u de id=LAST_INSERT_ID(id) gebruikt, wordt de waarde van mysql_insert_id =de bijgewerkte ID ingesteld, dus uw uiteindelijke code zou er als volgt uit moeten zien:

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

Dit geeft de juiste waarde voor $my_id, ongeacht de update of invoeging.



  1. SQL alles selecteren als parameter null is, anders specifiek item retourneren

  2. Django-fixture mislukt, met vermelding van DatabaseError:waarde te lang voor type karakter variërend (50)

  3. Formatteer sysjobhistory datetime &duration Kolommen in SQL Server

  4. Splitfunctie in orakel naar door komma's gescheiden waarden met automatische volgorde