将python变量插入到prosgresql查询中

时间:2019-02-05 12:19:31

标签: python web-applications

我正在尝试使用WHERE子句中的TabPages变量来搜索posgresql数据库,但出现错误“ coloumn不存在”。

这是我的查询:

Controls

nameFilter是用户表单中的变量。

因此,如果用户要在搜索中输入AKT1,我得到的错误是: programmingError:列“ akt1”不存在 第1行:...公开*来自公众。pythonquery = 'SELECT * FROM public."Kinase_table" WHERE "KINASE_NAME" = ' + nameFilter + ' '

任何人都可以帮助并告诉为什么会这样吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您正在做的是字符串串联。所以最后到达数据库的字符串看起来像

SELECT * FROM public."Kinase_table" WHERE "KINASE_NAME" = AKT1 

当您真正希望成为

SELECT * FROM public."Kinase_table" WHERE "KINASE_NAME" = 'AKT1'

注意AKT1周围的'。因此,您的python需要看起来像

query =  'SELECT * FROM public."Kinase_table" WHERE "KINASE_NAME" = \'' + nameFilter + '\''

请注意,'\'字符会在字符串结尾处转义'字符。