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

PHPz
Lepaskan: 2023-06-13 12:07:40
ke hadapan
1287 orang telah melayarinya
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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

Label berkaitan:
sql
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan