mysql-python fetchrowがもたらす:typeRerr: 'long'オブジェクトは呼ばれません

StackOverflow https://stackoverflow.com/questions/8868408

  •  28-10-2019
  •  | 
  •  

質問

私はテーブルを手に入れました:

+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Benutzer  | varchar(50) | YES  |     | NULL    |       |
| Confirmed | tinyint(1)  | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+

1つのエントリ付き!

シェル内のMySQLコンソールで実行する場合:

select Benutzer from UserConfirm where Benutzer = '\{\'gid\'\:\ \'tamer\'\,\ \'uid\'\:\ \'tamer\'\}'

できます!

mysql-pythonには、誤りがあります。

TypeError: 'long' object is not callable

私は何を間違えましたか?!これが私のPythonコードです:

cursor = self.__db.cursor().execute('select * from UserConfirm where Benutzer = \'' + ds + '\'') 
return cursor().fetchrow()

どんなアドバイスでも、ありがとうございました。

役に立ちましたか?

解決

問題は、カーソルオブジェクトを保存していないことです。実行の返品値だけで、カーソルではありません。

cursor = self.__db.cursor()
cursor.execute('select * from UserConfirm where Benutzer = \'' + ds + '\'') 
return cursor.fetchone()

他のヒント

私はあなたのラインを想定していることに注意してください cursor().fetchrow() タイプミスであり、あなたは意味しました cursor.fetchrow().

自分でmysql-pythonを知らない、エラーから私が想定できる cursor.execute カーソル自体ではなく、行数またはエラーコードを返しています。

代わりに次のことを試してください:

cursor = self.__db.cursor()
cursor.execute('select * from UserConfirm where Benutzer = \'' + ds + '\'')
return cursor.fetchrow()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top