Heim >Backend-Entwicklung >Python-Tutorial >Welche Methoden gibt es für Python pymysql, um Parameter an SQL-Anweisungen zu übergeben?

Welche Methoden gibt es für Python pymysql, um Parameter an SQL-Anweisungen zu übergeben?

PHPz
PHPznach vorne
2023-06-13 12:07:401331Durchsuche
Verzeichnis
  • Wie übergibt Python-pymysql Parameter an SQL-Anweisungen? Typ zum Übergeben von Parametern

    • So übergeben Sie Parameter an eine SQL-Anweisung mit Python-pymysql

    • Methode eins: Übergeben Sie keine Parameter
    • ## 方式一、不传递参数
       id = "01"
       name = "语文"
       sql = "select * from course where course_id = '%s'  and course_name = '%s' ;" %(id,name)
       ## 执行数据库查询或命令
       cursor.execute(sql)

      Methode zwei: Verwenden Sie ein Array, um Parameter zu übergeben

      ## 方式二、使用数组传递参数
        values = ['01','语文']
        sql = "select * from course where course_id = %s and course_name = %s "
        ## 执行数据库查询或命令
        cursor.execute(sql,values)
    • Hinweis: Der Platzhalter hier ist % s, unabhängig davon, ob es sich um eine Zeichenfolge, eine Zahl oder einen anderen Typ handelt, handelt es sich um diesen Platzhalter.
    • %s können nicht zitiert werden. Was ist der Unterschied zwischen

    • und der ersten Schreibweise?
Der Unterschied zwischen den beiden ist das Parsen von Variablen:

Die erste Möglichkeit, mit dem Prozentzeichen % zu schreiben, besteht darin, dass der Python-Interpreter %s entsprechend ersetzt. Bei diesem Ansatz gibt es ein Problem und er kann in manchen Fällen nicht korrekt geparst werden, etwa wenn Sonderzeichen enthalten sind, was zu Schwachstellen bei Injektionsangriffen führen kann.

Zweitens wird die Variable als Parameter der Ausführung übergeben und die integrierte Methode von MySQLdb interpretiert die Variable in geeigneten Inhalt.

Im Allgemeinen wird empfohlen, die zweite Methode zu verwenden und Variablen als Parameter zur Ausführung zu übergeben.

Methode 3: Verwenden Sie den Wörterbuch-Dikttyp, um Parameter zu übergeben

## 方式三、使用字典dict类型传递参数
  sql = "select * from course where course_id = %(course_id)s and course_name =  %(course_name)s ;"
  ## 将参数封装到字典
  #values = {'course_id':'01','course_name':'语文'}
  values = {'course_name':'语文','course_id':'01'}
  ## 执行数据库查询或命令
  cursor.execute(sql,values)

Auf diese Weise ist die Entsprechung zwischen den übergebenen Parametern relativ klar. Insbesondere bei vielen Parametern kann durch die Verwendung eines Wörterbuchs sichergestellt werden, dass die Parameter in der richtigen Reihenfolge übergeben werden.

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es für Python pymysql, um Parameter an SQL-Anweisungen zu übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen