從 Python 的文檔(https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.execute),我應該能夠使用參數(shù)化占位符執(zhí)行 SQL 語句。然而,下面的代碼不起作用。import sqlite3conn = sqlite3.connect("temp.db")c = conn.cursor()c.execute("create table ? (foo text, bar text)", ("table_name",))conn.commit()conn.close()我收到一個錯誤:Traceback (most recent call last): File "main.py", line 6, in <module> c.execute("create table ? (foo text, bar text)", ("table_name",))sqlite3.OperationalError: near "?": syntax error但是如果我不使用參數(shù)化占位符,它就可以工作。
1 回答

慕姐4208626
TA貢獻1852條經(jīng)驗 獲得超7個贊
一句話——不。您只能參數(shù)化值,不能參數(shù)化對象名稱(在本例中為表名稱)。如果你想做這樣的事情,你必須求助于字符串操作,例如:
c.execute("create table %s (foo text, bar text)" % ("table_name"))
添加回答
舉報
0/150
提交
取消