PHP MySQL INSERT nedeniyle benzersiz sınırlamayla başarısız

2 Cevap php

Insert ben benzersiz kısıtlama mysql_errno () 1062 yakalıyorum.

Bu çalışıyor ama yeniden yatırmak için varolan satır bulmak veya değiştirmek istiyorum.

Ucun üzerindeki satır id başarısız elde yöntem var mı? Ben mysql_insert_id çalıştı () ama bu sadece bu nedenle, ben 0 olsun ben takmadan (ya da eklemek için başarısız) ben satır dönecekti gerçekleştirdi.

Başka mysql_query sorunu ve sadece yinelenen değerin üzerinde bir seçme yapmak için ama hiçbir seçenek var mı?

Sadece emin bunu yapmak için, daha hızlı, daha ekonomik bir şekilde daha iyi olduğunu yapmak istiyorum.

2 Cevap

Yeni eğer bir satır eklemek veya mevcut değerlerini güncellemek için çalışıyorsunuz sonra REPLACE INTO ne ihtiyaç vardır. INTO DELETE ve sonra INSERT olacak DEĞİŞTİR olarak yer kısıtlamalar varsa da INSERT ... ON DUPLICATE KEY UPDATE Syntax düşünün.

Siz herhangi bir "benzersiz" tuşları (SHOW CREATE TABLE tüm bunları listeler) için tablosunu kontrol etmek zorunda, ve sonra teşebbüs ediyorum insert sorgusunda ilişkili değerleri tablosunu sorgulamak istiyorum. Eğer alanları A, B, C, D ve B takıyor Yani, C, sonra onlara benzersiz bir anahtar var:

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