从php开始使用python上周后,我想知道构建MySQL查询的最佳方法是什么。
我正在使用Python的MySQLdb模块。
在做了一些研究之后,似乎最好的方法类似于下面的代码:
def updateEmployee(employee):
try:
cursor = db.cursor()
cursor.execute("""
UPDATE `employee2`
SET `employeeID`=%s, `parentNameN`=%s, `firstName`=%s, `lastName`=%s, `title`=%s, `room`=%s, `locCode`=%s, `posOrg`=%s
WHERE `employee2`.`nameN`=%s
""", (employee["employeeID"], employee["parentNameN"], employee["firstName"], employee["lastName"], employee["title"], employee["room"], employee["locCode"], employee["posOrg"], employee["nameN"]))
db.commit()
print employee["nameN"]+" updated"
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit(1)
这一切都很棒,除非,当我遇到这样的错误时,例如“错误1064:你的SQL语法中有错误:...”这很好,它说我的查询在语法上是不正确的。
所以我得到了那个部分,但是如何查看有问题的查询呢?有没有办法可以在cursor.execute之外构造这个查询,这样在我得到通用错误消息的情况下,我至少可以做一个“打印查询”?
答案 0 :(得分:1)
您的查询中不需要反引号。错误就在这里`posOrg`:%s
SET `employeeID`=%s, `parentNameN`=%s, `firstName`=%s, `lastName`=%s,
`title`=%s, `room`=%s, `locCode`=%s, **`posOrg`:%s**