आप इसे ट्राइ कैच ब्लॉक के साथ क्रियान्वित कर सकते हैं:
try {
$prep->execute($values);
// do other things if successfully inserted
} catch (PDOException $e) {
if ($e->errorInfo[1] == 1062) {
// duplicate entry, do something else
} else {
// an error other than duplicate entry occurred
}
}
आप "INSERT IGNORE", और "INSERT... ON DUPLICATE KEY UPDATE" जैसे विकल्पों पर भी गौर कर सकते हैं - हालांकि मुझे लगता है कि वे MySQL विशिष्ट हैं और PDO का उपयोग करने की पोर्टेबिलिटी के खिलाफ जाएंगे, अगर ऐसा कुछ है जिसके बारे में आप चिंतित हैं ।
संपादित करें:मेरे लिए, आपके प्रश्न का अधिक औपचारिक रूप से उत्तर देने के लिए, समाधान # 1 (रक्षात्मक प्रोग्रामर) पूर्ण उपयोग में पहली बार में अद्वितीय बाधा के बिंदु को प्रभावी ढंग से समाप्त कर देता है। तो मैं आपके विचार से सहमत हूँ कि MySQL को डेटा जाँच का ध्यान रखना चाहिए।