我在尝试执行SQL代码行时遇到问题:
sql1 = "select ",(variable.get())," FROM ProductTable WHERE", Queryby.get()
cursor.execute(sql1)
当我在程序中执行这些代码行时,它说
ValueError: operation parameter must be str
我想这是因为我试图在sql代码行中使用.get()。我假设这是因为如果我把代码从cursor.execute(sql)
改成print(sql1)
,它会说:
('select ', 'OrderNo', ' FROM ProductTable WHERE', 'This is a test')
我认为问题在于这并不都被认为是一个字符串,但是我不确定如何在不干扰SQL的情况下调用代码的.get()
部分。有什么建议吗
不要使用逗号,而是使用
+
连接字符串:这将返回一个字符串,但请注意,一般来说,这是构建查询的不安全方法。不要简单地把字符串粘在一起,请仔细阅读parameterized queries以保护自己免受SQL injection的攻击,这是最常见的安全漏洞之一
我不确定您使用什么库来访问数据库,但大多数都支持开箱即用的参数化
相关问题 更多 >
编程相关推荐