我是Python-Flask的新手,我正在尝试使用MySQLDB来连接数据库。但是,我无法确定如何检查游标执行的查询是否成功或是否失败。在下面的代码中,有人可以建议我如何处理if语句中的条件? c是数据库的游标,并且连接成功,因此我将其从下面的代码中排除。
qry = "SELECT count(*) FROM users where username = (%s)" % (username)
try:
x = c.execute(qry) #Is this correct? Doe execute command return a value?
if <<*Check if the query executed successfully*>>:
return 'Success'
else:
return 'Failure'
except Exception as e:
return 'Failure'
答案 0 :(得分:1)
c.execute(qry)
将不会返回任何内容。因此,您不能将其用于if
声明。
但是,您可以使用fetchall()
或fetchone()
来检查查询是否有某些结果。它看起来像这样:
qry = "SELECT count(*) FROM users where username = (%s)" % (username)
try:
c.execute(qry) #Is this correct? Doe execute command return a value?
user = c.fetchone()
if user:
return 'Success'
else:
return 'Failure'
except Exception as e:
return 'Failure'
答案 1 :(得分:0)
您已经有了检测已发布代码中失败的方法。如果查询出现问题,Python将引发异常,您可以捕获该异常。虽然值得注意的是你永远不应该看到一个裸露的异常,你肯定永远不会隐藏那个异常;捕获相关的MySQLdb异常,例如MySQLdb.Error
。