ホームページ > バックエンド開発 > Python チュートリアル > パラメータ化された MySQL クエリの「TypeError: Not All Arguments Converted」を修正する方法?

パラメータ化された MySQL クエリの「TypeError: Not All Arguments Converted」を修正する方法?

Linda Hamilton
リリース: 2024-12-10 14:04:10
オリジナル
349 人が閲覧しました

How to Fix

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート