यह एक कारण है कि आपको पैरामीटर बाइंडिंगका उपयोग करना चाहिए। ए> पायथन में मापदंडों को प्रारूपित करने के बजाय।
बस यह करें:
sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'
फिर:
cur.execute(sql, macs, host)
इस तरह, आप केवल स्ट्रिंग के साथ एक स्ट्रिंग के रूप में निपट सकते हैं, और MySQL लाइब्रेरी को यह पता लगाने दें कि इसे आपके लिए कैसे उद्धृत किया जाए और इससे कैसे बचा जाए।
उसके ऊपर, आपको आम तौर पर बेहतर प्रदर्शन मिलता है (क्योंकि MySQL एक क्वेरी को संकलित और कैश कर सकता है और विभिन्न पैरामीटर मानों के लिए इसका पुन:उपयोग कर सकता है) और एसक्यूएल इंजेक्शन हमले (स्वयं को हैक करने के सबसे सामान्य तरीकों में से एक)।