我正在使用pymysql处理python中的sql查询。假设我们有以下函数
def f(bid)
con=connection()
cursor=con.cursor
sql = "select b.text from book b where b.id = 'bid'"
cursor.execute(sql)
book_text = cursor.fetchone()
print (book_text)
当我这样做时:
f('123abc')
它打印:
()
但如果我将上述sql查询替换为:
"select b.text from book b where b.id = '123abc'"
它印的是正确的东西。
有什么想法吗?提前谢谢!
2条答案
按热度按时间gjmwrych1#
您需要将参数“绑定”到查询:
注意:使用占位符的好处(
%s
)在查询中,并向execute()
通常为您处理所有不同的变量类型(int、str、dates等等)。看看你可以传递给哪些对象的文档
execute()
.3gtaxfhh2#
“123”参数没有修改用于sql查询的字符串。更改为: