我现在正在使用python mysql
我遇到了问题,这是 mysql 查询
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent ='idd'
我从外部源获得 idd 的地方,但每当我尝试执行此查询时
我收到错误
File "server.py", line 28
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent ='idd'
^
SyntaxError: invalid syntax
请帮助我解决我可能做错了什么
您需要使用查询参数:
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent =?'
然后在执行查询时传入 idd
的值:
cursor.execute(query, (idd,))
在python中,你不能简单地在各种字符串之间放一个变量,然后希望它插值。
若要执行常规字符串内插,请使用 .format()
方法:
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "{0}"'.format(idd)
但是,您将错过准备语句的数据库查询优化器。如果重复使用预准备语句,则执行速度更快。
您混合了双引号和单引号。
而不是。。。
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = 'idd'
用。。。
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "idd"'
另外,idd 是变量吗? 如果你需要做...
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "'+str(idd)+'"'
您似乎忘记在进行查询时连接外部变量,
query = 'SELECT * FROM callerdetail WHERE screenname="1" AND status="0"AND agent = "'+idd+'"'