Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中插入变量作为SQL值_Python_Sql_Pyodbc - Fatal编程技术网

在python中插入变量作为SQL值

在python中插入变量作为SQL值,python,sql,pyodbc,Python,Sql,Pyodbc,我在MS SQL server中使用上述代码,但它显示:无效的列名'exp' 我正在使用pyodbc。您需要将exp内容作为字符串引入到插入表达式中。您可以使用和“”: 我认为应该将其作为元组传递: cursor.execute ("insert into films (descp) values (?)",exp) FWIW,任何解决方案都可以工作,但(目前)xbb是唯一一个不易受SQL注入攻击的解决方案。@Aya为什么你认为我使用它进行SQL注入?尝试后说:语句已终止。如何exp=“any

我在MS SQL server中使用上述代码,但它显示:无效的列名'exp'
我正在使用pyodbc。

您需要将
exp
内容作为字符串引入到插入表达式中。您可以使用和“”:


我认为应该将其作为元组传递:

cursor.execute ("insert into films (descp) values (?)",exp)

FWIW,任何解决方案都可以工作,但(目前)xbb是唯一一个不易受SQL注入攻击的解决方案。@Aya为什么你认为我使用它进行SQL注入?尝试后说:语句已终止。如何
exp=“anything”);drop table films;-“
?我的解决方案可以工作,但xbb是更正确的解决方案。你的解决方案是有效的,但它说:声明已经终止
exp = "Ted is a good film"
cursor.execute ("insert into films (descp) values ('{exp}')".format(exp=exp))
cursor.commit()
cursor.execute ("insert into films (descp) values (?)",exp)
cursor.execute ("insert into films (descp) values (?)", (exp,))