PHP MySQL INSERT терпит неудачу из-за уникального ограничения

На вставке я улавливаю уникальное ограничение mysql_errno () 1062.

Это отлично работает, но я хочу найти существующую строку, чтобы повторно установить или изменить ее.

Есть ли способ получить идентификатор строки на вставке? Я попробовал mysql_insert_id (), но понял, что вернет только строку, которую я вставляю (или не вставляю), поэтому я получаю 0.

Нет ли опции, кроме как выпустить другой mysql_query и просто выполнить выбор по дублируемому значению?

Я просто хочу убедиться, что нет лучшего, более быстрого и экономичного способа сделать это.

    Если вы пытаетесь вставить строку, если новые или обновить существующие значения, то REPLACE INTO – это то, что вам нужно. Также рассмотрите INSERT … ON DUPLICATE KEY UPDATE Синтаксис, если есть ограничения, связанные с REPLACE INTO, будет удаляться, а затем INSERT.

    Вам нужно будет проверить таблицу для каких-либо «уникальных» ключей ( SHOW CREATE TABLE их все), а затем запросит таблицу для связанных значений в запросе вставки, который вы попытались. Поэтому, если вы вставляете поля A, B, C, D и B, C имеют уникальный ключ, то:

     SELECT id, B, C FROM table WHERE B=$B and C=$C;