Mysql :Query set 在 python 中不起作用



我现在正在使用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+'"'

最新更新