2011-10-25 14 views
6

मैं MySQL से इस त्रुटि हो रही है:MySQL त्रुटि: "अपने एसक्यूएल वाक्य रचना में एक त्रुटि; मैनुअल है कि सही वाक्य रचना के लिए अपने सर्वर संस्करण के लिए संगत की जाँच"

You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near 'Details 
(title, first, last, NRIC, po' at line 1 

यहाँ कोड है:

<?php 
    $link = mysql_connect("localhost", "root", ""); 
    if (!$link) { die('Could not connect: ' . mysql_error()); } 

    $db_selected = mysql_select_db(Membership, $link); 
    if (!$db_selected) { die('Can\'t use' . Membership . ':' . mysql_error()); } 

    $value1 = $_POST["title"]; 
    $value2 = $_POST["first"]; 
    $value3 = $_POST["last"]; 
    $value4 = $_POST["NRIC"]; 
    $value5 = $_POST["birthdate"]; 
    $value6 = $_POST["birthmonth"]; 
    $value7 = $_POST["birthyear"]; 
    $value8 = $_POST["address"]; 
    $value9 = $_POST["postal"]; 
    $value10 = $_POST["genderSelect"]; 
    $value11 = $_POST["contact"]; 
    $value12 = $_POST["email"]; 
    $value13 = $_POST["enter"]; 
    $value14 = $_POST["password"]; 
    $value15 = $_POST["Updates"]; 
    $value16 = $_POST["Terms"]; 
    $value17 = $_POST["submit_but"]; 
    $value18 = $_POST["status"]; 

    $sql = "INSERT INTO Member Details (title, first, last, NRIC, birthdate, birthmonth, birthyear, address, postal, genderSelect, contact, email, enter, password, Updates, Terms, submit_but, status) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7', '$value8', '$value9', '$value10', '$value11', '$value12', '$value13', '$value14', '$value15', '$value16', '$value17', '$value18')"; 

    if (!mysql_query($sql)){  //The error is thrown here 
    die('Error: ' . mysql_error()); 
    } 
    mysql_close(); 
?> 
+2

जब अपने SQL क्वेरी इतना विकृत है कि यह भी क्या समझने के लिए शुरू नहीं कर सकते है MySQL आप इस त्रुटि देता है आप ऐसा करने की कोशिश कर रहे हैं, और आपको जो भी लगता है उस पर लक्षित सलाह देने के बजाय, यह आपको "मैन्युअल पढ़ने के लिए" कहता है। तो ... मैन्युअल पढ़ें: http://dev.mysql.com/doc/refman/5.0/en/select.html –

+0

@EricLeschinski हालांकि यह सिर्फ एक टिप्पणी थी, यह मुझे एहसास हुआ कि मेरी समस्या क्या थी - ए फ़ील्ड नाम जो MSSQL में कानूनी था लेकिन MySQL में एक आरक्षित शब्द था। –

उत्तर

12

की तरह कुछ होना चाहिए आपकी समस्या यहाँ निहित है:

INSERT INTO Member Details ... 

क्योंकि आप एक जगह नहीं है, यह सोचता है कि Member तालिका नाम है और Details है अपरिपक्व, इसलिए त्रुटि।

तो अपनी मेज Member Details है, तो आप वापस टिक के भीतर इसे संलग्न करने की जरूरत है:

INSERT INTO `Member Details` ... 

मैं वास्तव में के लिए एसक्यूएल तालिका नामों में रिक्तियां (या फाइल सिस्टम फ़ाइल नाम का यही एक बड़ी प्रशंसक नहीं हूँ वह मामला)। इस विशेष मामले में, मेरा मानना ​​है कि MemberDetails (या Member_Details, member_details और शायद अन्य) बिना के बिना आपके कोड में बिखरे बैकटिक्स के उपयोग की आवश्यकता है।

+0

नमस्ते, ऐसा करने के बाद भी मुझे एक ही प्रारंभिक त्रुटि है – exxcellent

+0

@exxcellent: ऐसा लगता है ... असंभव - मैं यहां कुशल होने की कोशिश कर रहा हूं :-) कोई तरीका नहीं है कि आपको 'विवरण' के बारे में शिकायत करने में त्रुटि हो सकती है यह ठीक से उद्धृत किया गया है। आपकी टेबल का नाम क्या है? – paxdiablo

+0

@exxcellent - तालिका नाम में रिक्त स्थान का उपयोग करना एक अच्छा अभ्यास नहीं है। आपको सदस्य_ विवरण में INSERT के बजाय अंडरस्कोर का उपयोग करना चाहिए। निजी तौर पर, मैं केवल लोअरकेस का उपयोग करता हूं। – pmrotule

3

आपका सम्मिलित वाक्यविन्यास गलत है। सदस्य मेज उन्हें नाम है यदि यह निम्नलिखित

INSERT INTO Member (title, first, last, NRIC, birthdate, birthmonth, birthyear, address, postal, genderSelect, contact, email, enter, password, Updates, Terms, submit_but, status) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7', '$value8', '$value9', '$value10', '$value11', '$value12', '$value13', '$value14', '$value15', '$value16', '$value17', '$value18') 
4

कोशिश चिह्न (``) प्रत्येक फ़ील्ड नाम के लिए परिणाम की तरह हो सकता है तो यह

"INSERT INTO `Member Details` (`title`, `first`, `last`, `NRIC`, `birthdate`, `birthmonth`, `birthyear`, `address`, `postal`, `genderSelect`, `contact`, `email`, `enter`, `password`, `Updates`, `Terms`, `submit_but`, `status`) 
VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7', '$value8', '$value9', '$value10', '$value11', '$value12', '$value13', '$value14', '$value15', '$value16', '$value17', '$value18')"; 
+0

यह मेरे लिए त्रुटि तय !! धन्यवाद आरिफ। मैं सामान्य सिंगल कोट्स का उपयोग कर रहा था और ('') त्रुटि का उपयोग कर रहा था! – Damodog