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

तालिका नाम के रूप में पायथन MySQLdb चर

ऐसा लगता है कि यह आपका SQL कथन है:

cursor.execute("INSERT INTO %s (description, url) VALUES (%s, %s);", (table_name.encode("utf-8"), key.encode("utf-8"), data[key].encode("utf-8")))

IIRC, तालिका का नाम नहीं है पैरामीटरयुक्त किया जा सकता है (क्योंकि यह अनुचित रूप से उद्धृत किया जाता है)। आपको इसे किसी अन्य तरीके से स्ट्रिंग में इंजेक्ट करने की आवश्यकता होगी (अधिमानतः सुरक्षित रूप से - यह जांच कर कि अनुरोध किया गया तालिका नाम तालिका नामों के श्वेतसूचीबद्ध सेट से मेल खाता है) ... उदाहरण:

_TABLE_NAME_WHITELIST = frozenset(['four'])

...
if table_name not in _TABLE_NAME_WHITELIST:
    raise Exception('Probably better to define a specific exception for this...')

cursor.execute("INSERT INTO {table_name} (description, url) VALUES (%s, %s);".format(table_name=table_name),
    (table_name.encode("utf-8"),
     key.encode("utf-8"),
     data[key].encode("utf-8")))



  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 [संग्रहीत प्रक्रिया] से [अस्थायी तालिका] में कैसे प्रवेश करें

  3. PHP पर MySQL संग्रहित प्रक्रिया को कॉल करना

  4. डेटाबेस पैमाने को क्षैतिज रूप से रिलेशनल कर सकते हैं

  5. PHP/MYSQL के साथ हटाने से पहले जावास्क्रिप्ट पुष्टि करें