Rumah > Soal Jawab > teks badan
P粉5456825002023-08-21 13:22:44
Pelaksanaan Python DB-API yang berbeza membenarkan pemegang tempat yang berbeza, jadi anda perlu mengetahui yang mana yang anda gunakan -- contohnya (menggunakan MySQLdb):
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Atau (menggunakan sqlite3 dari perpustakaan standard Python):
cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3))
atau sesuatu yang lain (dalam VALUES
之后你可以有(:1, :2, :3)
,或者"命名样式"(:fee, :fie, :fo)
或者(%(fee)s, %(fie)s, %(fo)s)
,在execute
的第二个参数中传递一个字典而不是一个映射)。检查你正在使用的DB API模块中的paramstyle
pemalar rentetan, dan cari gaya param di http://www.python.org/dev/peps/pep-0249/ untuk semua gaya hantaran parameter!
P粉9261742882023-08-21 10:38:41
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Perhatikan bahawa hujah itu diluluskan sebagai tuple, (a, b, c)
。如果你只传递一个参数,元组需要以逗号结尾,(a,)
.
API pangkalan data akan melarikan diri dengan betul dan memetik pembolehubah. Sila berhati-hati untuk tidak menggunakan operator pemformatan rentetan (%
) kerana