1

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

これを修正するにはどうすればよいですか?

4

1 に答える 1

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)
于 2013-02-24T03:51:07.513 に答える