11

現状:

テーブルを含む作業データベースがあり、クエリ、挿入、更新などを行うことができます。また、カーソルは適切なデータベースに接続されています。

テーブル:

クエリ結果のスクリーンショット

問題:

テーブルからのデータのクエリに関しては、次のような問題が発生します。

query     = 'SELECT Last_Request_Time FROM Products WHERE idProduct = %s'
idProduct = '106'
cursor.execute(query, (idProduct))

デバッグ中に、私はcursor.execute()関数を見ています:params = str: 106に渡されます:

stmt = operation % self._process_params(params)

どこ

res = params
# pylint: disable=W0141
res = map(self._connection.converter.to_mysql, res)

で呼び出されres = str: 106ます。コンバーターが何をしているのかわかりませんが、結果としてres = list: ['1', '0', '6']. そして、これらの引数は実行関数に渡され、次のエラーが発生します。

File "C:\Python27\lib\site-packages\mysql\connector\cursor.py", line 480, in execute
"Wrong number of arguments during string formatting")
mysql.connector.errors.ProgrammingError: Wrong number of arguments during string formatting

悪い回避策:

汚い回避策がありますが、満足していません。場合によっては機能しない場合があります。

query     = 'SELECT Last_Request_Time FROM Products WHERE idProduct = %s AND Edition != %s'
idProduct = '106'
cursor.execute(query, (idProduct, 'A'))
4

1 に答える 1