【发布时间】:2020-01-22 09:31:38
【问题描述】:
我遇到了关于 SQL 和 Python 的问题。
在我的代码中,我尝试使用输入字段搜索两个元素。它是CommercialCode 或ItemNumber。 ItemNumber 的这段代码工作得很好(只是最后一部分很重要):
SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description, GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s'" % eingabe, conn)
但实际上我想要这样:
SQL_Query = pd.read_sql_query("Select top 1 UnitWeight, GlobalItemDescription.ItemNumber, GlobalItemDescription.Description, GlobalItemMaster_new.CommodityCode, CommercialCode, GlobalItemMaster_new.DRICode from dbo.GlobalItemDescription inner join dbo.GlobalItemMaster_new on GlobalItemDescription.ItemNumber = GlobalItemMaster_new.ItemNumber where dbo.GlobalItemDescription.ItemNumber like '%s' OR dbo.GlobalItemMaster_new.CommercialCode like '%s'" % eingabe, eingabe2,conn)
当我执行上面的代码时,我得到了这个错误:
TypeError: 格式字符串的参数不足
【问题讨论】:
-
您的查询容易受到 SQL 注入的攻击。考虑使用参数化查询