Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah kaedah untuk pymysql Python untuk menghantar parameter kepada pernyataan SQL?

Apakah kaedah untuk pymysql Python untuk menghantar parameter kepada pernyataan SQL?

PHPz
PHPzke hadapan
2023-06-13 12:07:401429semak imbas
Direktori
  • Cara menghantar parameter kepada pernyataan SQL dengan Python-pymysql

    • Kaedah 1: Jangan lulus parameter

    • Kaedah 2: Gunakan tatasusunan untuk menghantar parameter

    • Kaedah 3: Gunakan jenis dict kamus untuk lulus parameter

Cara Python-pymysql menghantar parameter kepada pernyataan SQL

Kaedah 1: Jangan lulus parameter

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

Kaedah 2: Gunakan tatasusunan untuk menghantar parameter

## 方式二、使用数组传递参数
  values = ['01','语文']
  sql = "select * from course where course_id = %s and course_name = %s "
  ## 执行数据库查询或命令
  cursor.execute(sql,values)

Nota: di sini Pemegang tempat ialah %s, sama ada ia rentetan, nombor atau jenis lain, ia adalah pemegang tempat ini. %s tidak boleh dipetik. Apakah perbezaan antara

dengan cara penulisan pertama?

Perbezaan antara keduanya ialah penghuraian pembolehubah:

Cara pertama untuk menulis menggunakan tanda peratus % ialah penterjemah Python menggantikan %s dengan sewajarnya. Terdapat masalah dengan pendekatan ini dan ia tidak dapat dihuraikan dengan betul dalam beberapa kes, seperti apabila aksara khas disertakan, yang mungkin membawa kepada kelemahan dalam serangan suntikan.

Kedua, pembolehubah dihantar masuk sebagai parameter pelaksanaan, dan kaedah terbina dalam MySQLdb mentafsir pembolehubah ke dalam kandungan yang sesuai.

Secara amnya, adalah disyorkan untuk menggunakan kaedah kedua, menghantar pembolehubah sebagai parameter untuk dilaksanakan.

Kaedah 3: Gunakan jenis dict kamus untuk menghantar parameter

## 方式三、使用字典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)

Dengan cara ini, surat-menyurat antara parameter yang diluluskan adalah agak jelas. Terutama apabila terdapat banyak parameter, menggunakan kamus boleh memastikan bahawa parameter diluluskan dalam susunan yang betul.

Atas ialah kandungan terperinci Apakah kaedah untuk pymysql Python untuk menghantar parameter kepada pernyataan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam