Dav*_*ver 1 python sqlite django django-1.3
例如,当我cursor.execute() 按照记录使用时:
>>> from django.db import connection
>>> cur = connection.cursor()
>>> cur.execute("DROP TABLE %s", ["my_table"])
django.db.utils.DatabaseError: near "?": syntax error
Run Code Online (Sandbox Code Playgroud)
当不使用Django的参数替换时,查询按预期工作:
>>> cur.execute("DROP TABLE my_table")
django.db.utils.DatabaseError: no such table: my_table
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何使参数化查询起作用?
笔记:
;并没有帮助%s应该使用,而不是SQLite ?(Django转换%s为?)您不能在SQL语句中使用参数来代替标识符(列或表名).您只能使用它们代替单个值.
相反,您必须使用动态SQL来构造整个SQL字符串,并将其(未参数化)发送到数据库(如果表名在代码之外,则要特别小心以避免注入).
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |