Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql_insert_id() erhalten, während ON DUPLICATE KEY UPDATE mit PHP verwendet wird

Hier ist die Antwort, wie von Alexandre vorgeschlagen:

Wenn Sie id=LAST_INSERT_ID(id) verwenden, setzt es den Wert von mysql_insert_id =die aktualisierte ID – Ihr endgültiger Code sollte also so aussehen:

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

Dies gibt unabhängig von update oder insert den richtigen Wert für $my_id zurück.