पहला विकल्प क्वेरी पैरामीटर को क्वेरी में डालने का सही तरीका है - इसे पैरामीटरयुक्त क्वेरी कहा जाता है . इस मामले में, आप डेटाबेस ड्राइवर को क्वेरी पैरामीटर से बचने, सुरक्षित रूप से उन्हें क्वेरी में डालने और पायथन-टू-माईएसक्यूएल प्रकार रूपांतरणों को संभालने दे रहे हैं।
आपको जो त्रुटि मिल रही है उसका अर्थ है कि वह ID
. में से किसी एक को रूपांतरित नहीं कर सका , Record
, Latitude
, Longitude
या code
एक मान्य MySQL डेटाबेस प्रकार के लिए पैरामीटर मान। विशिष्ट होने के लिए, आपके द्वारा पोस्ट किए गए वेरिएबल प्रकार देखें:
ID <type 'unicode'>
Record <type 'unicode'>
Latitude <class 'bs4.element.NavigableString'>
Longitude <class 'bs4.element.NavigableString'>
code <type 'unicode'>
समस्या Latitude
. के साथ है और Longitude
- वे हैं BeautifulSoup
का NavigableString
क्लास इंस्टेंसेस - MySQL कन्वर्टर को यह समझने में कठिनाई हो रही है कि NavigableString
. को कैसे कन्वर्ट किया जाए एक वैध MySQL प्रकार में वस्तु। उन्हें पहले से स्पष्ट रूप से स्ट्रिंग में बदलें:
update = """
INSERT INTO
myDB.newtable
(ID,Record,Latitude,Longitude,code)
VALUES
(%s,%s,%s,%s,%s)
"""
cursor2.execute(update, (ID, Record, str(Latitude), str(Longitude), code))