你好,我是韩国人,所以我的母语不是英语
不管怎样,我有个问题
当我学习SQL和PYTHON FASK连接时
这是我的代码
sql='''select count(*) from member where id = :1 '''
result=curs.execute(sql,(join_id))
cnt=result.fetchone()
此代码打印(ORA-01036:非法变量名称/编号)错误消息
好的,我解决了错误
sql='''select count(*) from member where id = :1 '''
result=curs.execute(sql,(join_id,)
cnt=result.fetchone()
如下所示(Join_id(Add),)
这就是我的问题
为什么结果不同(,)
我认为它只有一个绑定变量,所以为什么需要(,)??
1条答案
按热度按时间yizd12fk1#
因为绑定变量始终需要在元组中,即使它是1元组。(这代表所有符合DB-API规范的Python SQL库。)
由于在Python
(foo)
只是一个带括号的foo
,要构建1元组,您需要尾随逗号(例如,请参见How to create a tuple with only one element)。