Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan 'TypeError: Tidak Semua Argumen Ditukar Semasa Pemformatan Rentetan' dalam Pertanyaan SQL Berparameter?

Bagaimana untuk Membetulkan 'TypeError: Tidak Semua Argumen Ditukar Semasa Pemformatan Rentetan' dalam Pertanyaan SQL Berparameter?

Barbara Streisand
Barbara Streisandasal
2024-12-06 06:33:14203semak imbas

How to Fix

Pertanyaan SQL Berparameter: Menyelesaikan "TypeError: Tidak Semua Argumen Ditukar Semasa Pemformatan Rentetan"

Dalam pertanyaan SQL berparameter, adalah penting untuk memastikan yang betul sintaks dan penukaran data untuk mengelakkan ralat. Apabila cuba menggunakan pemformatan rentetan dalam pertanyaan berparameter, ralat "TypeError: tidak semua argumen ditukar semasa pemformatan rentetan" boleh timbul.

Untuk menyelesaikan isu ini, elakkan menggunakan %s sebagai ruang letak untuk argumen. Sebaliknya, hantarkan argumen sebagai senarai berasingan kepada kaedah execute(). Contohnya:

import MySQLdb as mdb

class Test:
    def check(self, search):
        con = mdb.connect(...)
        cur = con.cursor()
        cur.execute("SELECT * FROM records WHERE email LIKE %s", [search])
        ...

Dengan melepasi carian dalam senarai, anda secara eksplisit menyatakan bahawa ia harus dianggap sebagai hujah yang berasingan untuk penukaran dan kemasukan dalam pertanyaan. Pendekatan ini memastikan bahawa semua hujah ditukar dengan betul dan digunakan dalam pertanyaan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'TypeError: Tidak Semua Argumen Ditukar Semasa Pemformatan Rentetan' dalam Pertanyaan SQL Berparameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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