Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पायथन/माईएसक्यूएल कॉम्बो के लिए सबसे अच्छी एस्केप कैरेक्टर रणनीति क्या है?

यहां एक उदाहरण दिया गया है:

import MySQLdb
column = str(MySQLdb.escape_string(row[1]))
query = "update myTable set %(column)s = %%s where ID = %%s" % dict(column = column) 
cursor2.execute(query, [row[3], row[0]])

अपडेट करें

यहाँ एक संक्षिप्त टिप्पणी है:

column = str(MySQLdb.escape_string(row[1]))

किसी भी प्रश्न से बचने के लिए हमेशा एक अच्छा विचार है। इस मामले में हम गतिशील रूप से एक कॉलम नाम जोड़ रहे हैं और इसलिए क्वेरी निष्पादित होने से पहले इसे बचाना होगा।

query = "update myTable set %(column)s = %%s where ID = %%s" % dict(column = column) 

मैं यहां क्वेरी बना रहा हूं। मैं दो चीजें हासिल करने की कोशिश कर रहा हूं:(1) column . का उपयोग करके पॉप्युलेट किए गए कॉलम नाम के साथ एक क्वेरी बनाएं पिछली पंक्ति में घोषित चर (2) प्लेसहोल्डर जोड़ें जो क्वेरी निष्पादन के दौरान वास्तविक मापदंडों से भरे जाएंगे।

स्निपेट dict(column = column) वास्तव में शब्दकोश बनाने का एक और तरीका है {'column': column} . यह dict का उपयोग करके संभव बनाया गया है। निर्माता। मैं अभी अन्य स्थान धारकों को भरना नहीं चाहता, इसलिए मैं दो प्रतिशत चिह्नों (%%) का उपयोग करके उनसे बच निकलता हूं )।

cursor2.execute(query, [row[3], row[0]])

अंत में क्वेरी निष्पादित करें। यदि आप निष्पादित करने से पहले क्वेरी प्रिंट करते हैं तो आपको स्ट्रिंग दिखाई देगी update myTable set column_name = %s where ID = %s .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्कैला का उपयोग करके मैं एक MySQL डेटाबेस से कैसे जुड़ सकता हूं?

  2. MySQL वर्कबेंच का उपयोग करके MySQL को कैसे रोकें / प्रारंभ करें

  3. MySQL में एकाधिक पंक्तियों को एक कॉलम में कैसे संयोजित करें

  4. कस्टम टाइमस्टैम्प द्वारा MySQL समूह

  5. स्थान और विशेष वर्णों वाले URL के लिए सर्वोत्तम अभ्यास