为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用带有参数化占位符的 sqlite3 Python 库创建 SQLite 表?

如何使用带有参数化占位符的 sqlite3 Python 库创建 SQLite 表?

牛魔王的故事 2021-09-28 17:44:39
从 Python 的文档(https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.execute),我应该能够使用参数化占位符执行 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但是如果我不使用参数化占位符,它就可以工作。
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

一句话——不。您只能参数化值,不能参数化对象名称(在本例中为表名称)。如果你想做这样的事情,你必须求助于字符串操作,例如:

c.execute("create table %s (foo text, bar text)" % ("table_name"))


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信