生の接続(または生のカーソル)を使用してフェッチを実行します。
import mysql.connector
conn = mysql.connector.connect(database='test',
user='test',raw=True)
cursor = conn.cursor()
cursor.execute("SELECT * FROM foo")
cursor.fetchall()
デフォルトでは、pythonfetchコマンドはバイナリデータを文字列に変換しようとします。これを試みると、utf-8でエンコードされた文字列では許可されていないバイトシーケンスが発生します。 rawモードをTrue
に設定する この動作をオーバーライドし、Pythonタイプに変換されるのではなく、結果がそのまま返されるようにします。