SyntaxError:mysqlDb python中的语法无效

时间:2013-02-24 03:01:41

标签: python python-2.4

我试图用python测试以下内容,但是我得到了无效的语法错误:

db = None

try:

db = mdb.connect("localhost","user","pass","dbName") 

with db:

    cur = db.cursor()                   
    cur.execute("SELECT * from product")

    rows = cur.fetchall()
    for row in rows:
        print row

except mdb.Error, e:

print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)

错误如下:

  File "script.py", line 11
with db:
      ^
SyntaxError: invalid syntax

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我很高兴看到您的所有导入声明,以查看代码中可能缺少的内容。我假设你至少在某处导入了MySQLdb。我创建了一个带有几个数据行的虚拟数据库来测试它。不确定python是如何让你在压缩块完全混乱的情况下逃脱的,但也许这只是你的代码缩进在这里发布错误。

这是我尝试的代码,似乎没有问题:

import MySQLdb as mdb

db = None

try:

    db = mdb.connect("localhost","user", "password", "test_data")

    ## with db:  ## try taking this out for Python 2.4
    cur = db.cursor()
    cur.execute("SELECT * FROM PRODUCT")
    rows = cur.fetchall()
    for row in rows:
        print row

except mdb.Error, e:

    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)