TableNames
पहचानकर्ता हैं इसलिए उन्हें सिंगल कोट्स के साथ उद्धृत नहीं किया जाना चाहिए। चूंकि आपके द्वारा उपयोग किया गया टेबलनाम आरक्षित कीवर्ड नहीं है, आप बस उन रैपिंग कोट्स को चारों ओर से हटा सकते हैं,
INSERT INTO student (FirstName, LastName....
जब आप सिंगल कोट्स के साथ कुछ लपेटते हैं, तो यह उस ऑब्जेक्ट को स्ट्रिंग अक्षर बनने के लिए मजबूर करता है। तो जब पहचानकर्ता सिंगल कोट्स के साथ लपेटे जाते हैं, तो इसका मतलब है कि वे अब पहचानकर्ता नहीं हैं।
सर्वर एक अपवाद फेंकता है क्योंकि INSERT INTO
एक पहचानकर्ता की अपेक्षा करता है कि स्ट्रिंग शाब्दिक नहीं है।
जब आपने गलती से एक तालिका नाम का उपयोग किया है जो एक MySQL Reserved है कीवर्ड
, पहचानकर्ता को सीमित करने के लिए एकल उद्धरण का उपयोग न करें लेकिन backticks
. के साथ ।
एक विचार के रूप में, क्वेरी SQL Injection
के साथ असुरक्षित है
यदि मान(s ) चर के बाहर से आया था। इससे बचाव के तरीके जानने के लिए कृपया नीचे दिए गए लेख पर एक नज़र डालें। PreparedStatements
. का उपयोग करके आप मूल्यों के इर्दगिर्द सिंगल कोट्स का उपयोग करने से छुटकारा पा सकते हैं।