2017-11-21 12 views
1

Python Mysql接続をテストするための次の簡単なコードがあります。PyMySQLカーソルのタイプエラー

connection = pymysql.connect(host = "localhost", 
        user = "root", 
        passwd = "", 
        db = "bugs", 
        charset = "utf8mb4", 
        cursorclass = "pymysql.cursors.Dictcursor") 

try: 
    with connection.cursor() as cur: 
     cur.execute('''SELECT COUNT(*) FROM tbl_firefox''') 

     for row in cur.fetchall(): 
      print("Number of rows in firefox table:", row) 
    connection.commit() 
finally: 
    connection.close() 

私は型エラー

File "test2.py", line 31, in <module> 
    with connection.cursor() as cur: 
    File "C:\Program Files\Anaconda3\lib\site-packages\pymysql\connections.py", line 833, in cursor 
    return self.cursorclass(self) 
TypeError: 'str' object is not callable 

を取得するコードを実行すると、私は他のpython-mysqlのコードで同様のエラーを表示してきました。しかし、まだ運がありません。もし誰かが私にバグを指摘できたら、大変感謝します。

答えて

0

はあちこちPyMySQL引用:

import pymysql.cursors 

# Connect to the database 
connection = pymysql.connect(host='localhost', 
          user='user', 
          password='passwd', 
          db='db', 
          charset='utf8mb4', 
          cursorclass=pymysql.cursors.DictCursor) 

try: 
    with connection.cursor() as cursor: 
     # Create a new record 
     sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" 
     cursor.execute(sql, ('[email protected]', 'very-secret')) 

    # connection is not autocommit by default. So you must commit to save 
    # your changes. 
    connection.commit() 

    with connection.cursor() as cursor: 
     # Read a single record 
     sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s" 
     cursor.execute(sql, ('[email protected]',)) 
     result = cursor.fetchone() 
     print(result) 
finally: 
    connection.close() 

それは私の端から

+0

ルーキーミス引用符で囲まれていないpasswdとcursorclass以外のパスワードでなければなりません。どうもありがとう。 – akalanka