Python MySQL Update ステートメントが失敗するのはなぜですか?どうすれば修正できますか?

Mary-Kate Olsen
リリース: 2024-11-08 13:26:02
オリジナル
740 人が閲覧しました

Why is My Python MySQL Update Statement Failing, and How Can I Fix It?

変数を使用した Python MySQL Update ステートメントの修正

Python update ステートメントを使用して MySQL レコードを更新しようとすると、エラーが発生する可能性があります。この問題に対処するには、構文を検証し、その適切な適用を確認することが重要です。

間違ったステートメント:

cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)
ログイン後にコピー

分析:

不適切な文字列の連結と欠落により、間違ったステートメントは失敗します。 「分」変数のプレースホルダー。このステートメントの正しい書き方は次のとおりです:

正しいステートメント:

cursor.execute ("""
   UPDATE tblTableName
   SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
   WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))
ログイン後にコピー

代替構文:

または、文字列操作は可能です使用:

cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
ログイン後にコピー

注意:

代替構文は機能する可能性がありますが、アプリケーションが SQL インジェクション攻撃に対して脆弱になるため、使用しないことを強くお勧めします。推奨されるアプローチは、正しいステートメントに示されているように、プレースホルダーを使用することです。

データベース互換性:

さらに、一部のデータベース バックエンドでは、文字列置換規則が異なる場合があります。たとえば、SQLite は「?」を使用します。プレースホルダーの「%s」の代わりに。

以上がPython MySQL Update ステートメントが失敗するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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