Bagaimana untuk Melarikan Watak '%' dalam Pertanyaan MySQL daripada Python?

Mary-Kate Olsen
Lepaskan: 2024-11-16 03:28:03
asal
851 orang telah melayarinya

How to Escape the '%' Character in MySQL Queries from Python?

Melepaskan % dalam Pertanyaan MySQL daripada Python

Apabila menggunakan perpustakaan MySQLdb Python, menghadapi pengecualian "ValueError: aksara format tidak disokong" semasa melaksanakan pertanyaan dengan aksara "%" boleh mengecewakan. Ini kerana MySQL menganggap aksara "%" sebagai kad bebas dan mentafsirkannya sebagai sebahagian daripada pertanyaan dan bukannya sebagai literal.

Untuk menyelesaikan isu ini, dokumentasi mengesyorkan agar tidak menggunakan tanda "%" literal dalam rentetan pertanyaan diluluskan untuk melaksanakan(). Dengan menggunakan % berganda (%%), MySQL akan mengenali "%" sebagai aksara literal dan bukannya kad bebas.

Sebagai contoh, pertanyaan dalam soalan asal boleh diubah suai seperti berikut:

query = """SELECT DATE_FORMAT(date_time, '%%Y-%%m') AS dd
FROM some_table
WHERE some_col = %s
AND other_col = %s;"""

cur.execute(query, (pram1, pram2))
Salin selepas log masuk

Dengan melepaskan tanda "%" literal, MySQL kini akan mengenali "Y" dan "m" sebagai aksara tertentu dalam rentetan DATE_FORMAT dan ralat akan menjadi dielakkan.

Atas ialah kandungan terperinci Bagaimana untuk Melarikan Watak '%' dalam Pertanyaan MySQL daripada Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan