ski*_*123 11 python string django cursor rawsql
我有这个光标
cursor.execute("SELECT price FROM Items WHERE itemID = (
SELECT item_id FROM Purchases
WHERE purchaseID = %d AND customer_id = %d)",
[self.purchaseID, self.customer])
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
'Cursor' object has no attribute '_last_executed'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这个:
cursor.execute("SELECT price FROM Items WHERE itemID = (
SELECT item_id FROM Purchases
WHERE purchaseID = 1 AND customer_id = 1)",
)
Run Code Online (Sandbox Code Playgroud)
没有错误.我该如何解决?
问题是你没有在你的选择字符串中正确地进行替换.来自docs:
def execute(self, query, args=None):
"""Execute a query.
query -- string, query to execute on server
args -- optional sequence or mapping, parameters to use with query.
Note: If args is a sequence, then %s must be used as the
parameter placeholder in the query. If a mapping is used,
%(key)s must be used as the placeholder.
Returns long integer rows affected, if any
"""
Run Code Online (Sandbox Code Playgroud)
所以,它应该是:
cursor.execute("SELECT price FROM Items WHERE itemID = (
SELECT item_id FROM Purchases
WHERE purchaseID = ? AND customer_id = ?)",
(self.purchaseID, self.customer))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17393 次 |
| 最近记录: |