एक unique
डालने पर विचार करें इस विशेष तालिका पर index. निम्न कोड अनुक्रमणिका जोड़ देगा और किसी भी मौजूदा डुप्लिकेट को हटा देगा:
ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
एक बार इसे जोड़ने के बाद, INSERT IGNORE
use का उपयोग करें या INSERT...ON DUPLICATE KEY UPDATE
. अगर कोई डुप्लीकेट नहीं है तो वे केवल इंसर्ट को प्रीफॉर्म करेंगे।
$mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
Mysql एक त्रुटि फेंक देगा क्योंकि ईमेल पहले से ही डेटाबेस में है। हालांकि, इग्नोर कमांड स्क्रिप्ट को इस क्वेरी के लिए त्रुटियों पर ध्यान न देने के लिए कह रहा है, क्योंकि इस मामले में, आप डुप्लिकेट पंक्ति के लिए इसकी अपेक्षा करते हैं।
साथ ही, INSERT IGNORE
के साथ भी, आपके उपयोगकर्ता को विफलता या सफलता संदेश के साथ सचेत करने का एक तरीका है। . MYSQL LAST_INSERT_ID()
का उपयोग करें . अगर कोई आईडी दी गई थी, तो उसे डाला गया था। यदि नहीं, तो ईमेल पहले से ही था (या कोई अन्य त्रुटि थी)।