Python SQL Select 中间有变量的语法
Python SQL Select Syntax with variable in between
我有一个 SQL 语句适用于 mysql:
SELECT * FROM `ps_message` WHERE `id_order` = 111 ORDER BY id_message asc LIMIT 1
Python中的以下语句有什么问题:
cursor2.execute("SELECT * FROM ps_message WHERE id_order='%s'" % order["id_order"] " ORDER BY id_message asc LIMIT 1")
Python 中的语法应该如何工作?
您在字符串格式设置方面存在语法错误。应该是:
cursor2.execute("SELECT * FROM ps_message WHERE id_order='%s' ORDER BY id_message asc LIMIT 1" % order["id_order"])
使用 format()
也优于旧式字符串格式。 Read more about it here.
将订单号作为查询参数传递。
例如
cursor2.execute("SELECT * FROM ps_message WHERE id_order=%s ORDER BY id_message asc LIMIT 1", [ order["id_order"] ])
请注意,在使用查询参数时,不要在 %s 两边加上引号。
建议使用此方法以避免 sql 注入攻击的风险。
如果有很多查询,它也应该更有效率。
我有一个 SQL 语句适用于 mysql:
SELECT * FROM `ps_message` WHERE `id_order` = 111 ORDER BY id_message asc LIMIT 1
Python中的以下语句有什么问题:
cursor2.execute("SELECT * FROM ps_message WHERE id_order='%s'" % order["id_order"] " ORDER BY id_message asc LIMIT 1")
Python 中的语法应该如何工作?
您在字符串格式设置方面存在语法错误。应该是:
cursor2.execute("SELECT * FROM ps_message WHERE id_order='%s' ORDER BY id_message asc LIMIT 1" % order["id_order"])
使用 format()
也优于旧式字符串格式。 Read more about it here.
将订单号作为查询参数传递。 例如
cursor2.execute("SELECT * FROM ps_message WHERE id_order=%s ORDER BY id_message asc LIMIT 1", [ order["id_order"] ])
请注意,在使用查询参数时,不要在 %s 两边加上引号。
建议使用此方法以避免 sql 注入攻击的风险。 如果有很多查询,它也应该更有效率。