我有一个 Sqlite3 表 paste{ paste_id int, paste_content text }
我必须做一个更新语句,其中文本可能包含单引号和 "" 双引号。在python中我写了
UPDATE_Statement = "Update paste set paste_content = '%s' where paste_id=id" %(content)
但由于内容可以包含 ' 或 "" ,我的执行查询无法正常工作。我怎样才能正确逃脱呢?
不要使用字符串插值。请改用 SQL 参数:
UPDATE_Statement = "Update paste set paste_content = %s where paste_id=%s"
cursor.execute(UPDATE_Statement, content)
并将转义(和正确的引用)留给数据库适配器。这个:
请参阅 Django SQL 文档中的传递参数raw()
。
如果您使用不同的数据库连接器(不是 Django 提供的连接),请验证文档中参数占位符的特定样式。例如,sqlite3
数据库适配器?
用作占位符语法。