mysql-python fetchrowがもたらす:typeRerr: 'long'オブジェクトは呼ばれません
-
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()
所属していません StackOverflow