sql >> Databasteknik >  >> RDS >> Mysql

hämta mysql_insert_id() när du använder ON DUPLICATE KEY UPDATE med PHP

Här är svaret, som föreslagits av Alexandre:

när du använder id=LAST_INSERT_ID(id) ställer det in värdet på mysql_insert_id =det uppdaterade ID--- så din slutliga kod bör se ut så här:

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

Detta kommer att returnera rätt värde för $my_id oavsett uppdatering eller infogning.



  1. MySQL One-to-Many till JSON-format

  2. Hur infogar man inkommande e-postmeddelande i mySQL-databasen?

  3. Varför är PostgreSQL-arrayåtkomst så mycket snabbare i C än i PL/pgSQL?

  4. SQL Sorteringsordning efter den ordning som anges i frågan