Melepaskan % daripada Pertanyaan MySQL dalam Python
Menggunakan aksara % dalam pertanyaan MySQL boleh membawa kepada pengecualian jika tidak dilepaskan dengan betul. Sebagai contoh, pertanyaan 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))
akan menimbulkan pengecualian "ValueError: aksara format tidak disokong 'Y'" kerana mysqldb mentafsir % sebagai penentu format.
Untuk menyelesaikan isu ini , melarikan diri secara literal disyorkan oleh dokumentasi mysqldb. Ini melibatkan penggandaan % aksara dalam rentetan pertanyaan:
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))
Ini akan menghalang mysqldb daripada mentafsir % aksara sebagai penentu format, membenarkan pertanyaan untuk dilaksanakan dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan % Aksara dalam Pertanyaan MySQL Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!