TypeError: パラメータ化された SQL クエリの文字列フォーマット中に一部の引数が変換されない
パラメータ化された SQL クエリのコードでエラー「TypeError:クエリに文字列を直接置換しようとしているため、文字列の書式設定中にすべての引数が変換されるわけではありません。このアプローチは、引数のリストがクエリに変換されることを期待しているため、機能しません。
この問題を修正するには、次を使用するのではなく、
cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search )
コードを次のように変更します。
cur.execute( "SELECT * FROM records WHERE email LIKE %s", [search] )
MySQLdb ドキュメントによると、execute() の 2 番目のパラメータは変換されるオブジェクトのリストを表し、単一のクエリ内の任意の数のオブジェクト。あなたの場合、オブジェクトは 1 つしかありませんが、それでも反復可能である必要があります。
以上がパラメータ化された MySQL クエリの「TypeError: Not All Arguments Converted」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。