मान लें कि सर्वर पर test नामक MySQL डेटाबेस मौजूद है और उसमें employee टेबल बनी है जिसमें पांच फील्ड हैं: fname, lname, age, gender, और salary।
हम एक टपल (tuple) ऑब्जेक्ट में मौजूद रिकॉर्ड डेटा को MySQL डेटाबेस में इन्सर्ट करना चाहते हैं:
t1 = ('Steven', 'Assange', 21, 'M', 2001)
आवश्यक मॉड्यूल इंस्टॉल करें
Python 3 और MySQL के बीच इंटरफेस स्थापित करने के लिए PyMySQL मॉड्यूल इंस्टॉल करें:
pip install PyMySQL
कनेक्शन और इन्सर्ट कोड
import PyMySQL
# डेटाबेस कनेक्शन खोलें
db = PyMySQL.connect("localhost", "root", "", "test")
# कर्सर ऑब्जेक्ट तैयार करें
cursor = db.cursor()
# इन्सर्ट क्वेरी सेट करें (पैरामीटराइज़्ड क्वेरी - सुरक्षित तरीका)
sql = "INSERT INTO employee (fname, lname, age, gender, salary) VALUES (%s, %s, %s, %s, %s)"
# टपल डेटा के साथ क्वेरी निष्पादित करें
cursor.execute(sql, t1)
# परिवर्तन कमिट करें
db.commit()
# कनेक्शन बंद करें
db.close()
print("रिकॉर्ड सफलतापूर्वक इन्सर्ट हो गया।")
महत्वपूर्ण बिंदु
- स्ट्रिंग फॉर्मेटिंग (% टपल) न करें - यह SQL इंजेक्शन का कारण बनता है।
- हमेशा
cursor.execute(sql, params)का उपयोग करें जहांparamsएक टपल या डिक्शनरी हो। db.commit()कॉल करना न भूलें, अन्यथा परिवर्तन सेव नहीं होंगे।
रिकॉर्ड वेरिफाई करें
# इन्सर्ट के बाद डेटा चेक करने के लिए
cursor.execute("SELECT * FROM employee")
rows = cursor.fetchall()
for row in rows:
print(row)