यहां कुछ चीजें गलत हैं।
आप एक MySQL कीवर्ड का उपयोग कर रहे हैं list
एक समारोह के रूप में, और वह अकेले ही आपको समस्याएं पैदा करेगा।
सिडेनोट:हां, मुझे पता है कि यह "आरक्षित" शब्द नहीं है, यह एक "कीवर्ड" है और MySQL कीवर्ड को विशेष रूप से एक फ़ंक्शन के रूप में उपयोग करता है, जो कि अब आप अपनी दूसरी क्वेरी में कर रहे हैं। , और जिस तरह से MySQL इसकी व्याख्या कर रहा है; तालिका घोषणा नाम के बजाय एक फ़ंक्शन।
मेरा सुझाव है कि आप उस तालिका का नाम बदलकर सूचियों में रख दें, या उसे टिकों में लपेट दें।
आप MySQL API/फ़ंक्शंस को भी मिला रहे हैं जो इंटरमिक्स नहीं करते हैं।
तो आपका नया कोड इस रूप में पढ़ा जाएगा,$selected = mysql_connect('christmas', $dbhandle);
छोड़ते समय
$query = mysqli_query($dbhandle, "SELECT * FROM `list` WHERE name='$name'")
or die (mysqli_error($dbhandle));
if(mysqli_num_rows($query) > 0){
echo 'that name already exists';
}else{
mysqli_query($dbhandle, "INSERT INTO `list` (name, one, two, three, four, five, six, seven, eight)
VALUES ('$name' , '$one' , '$two' , '$three' , '$four' , '$five' , '$six', '$seven' , '$eight')")
or die (mysqli_error($dbhandle));
}
mysqli_close($dbhandle);
आपका कोड SQL इंजेक्शन के लिए भी खुला है। तैयार कथन का प्रयोग करें।
अब, हमें नहीं पता कि आपके सभी चर कहां से आ रहे हैं।
त्रुटि रिपोर्टिंग का उपयोग करें।
मेरा यह भी सुझाव है कि आप एक सशर्त empty()
का उपयोग करें आपके चर/इनपुट के लिए।
अन्यथा, आपको अन्य त्रुटियां भी मिल सकती हैं जिनके बारे में MySQL शिकायत कर सकता है।
यानी:
if(!empty($var)){...}
अंततः और यह सुनिश्चित करने के लिए कि आपके डेटाबेस में कोई डुप्लिकेट प्रविष्टियाँ नहीं हैं, आप एक UNIQUE बाधा सेट कर सकते हैं।