Maison >base de données >tutoriel mysql >Comment corriger les erreurs dans les instructions de mise à jour Python MySQL ?

Comment corriger les erreurs dans les instructions de mise à jour Python MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-09 14:32:02808parcourir

How to Correct Errors in Python MySQL Update Statements?

Correction des erreurs dans les instructions de mise à jour Python MySQL

Lors de la mise à jour des données dans une base de données MySQL à l'aide de Python, il est crucial de garantir la syntaxe correcte pour le Instruction UPDATE. Considérez l'instruction suivante avec des variables :

cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)

Cette instruction contient plusieurs erreurs pouvant conduire à des mises à jour incorrectes. Voici l'approche correcte :

cursor.execute ("""
   UPDATE tblTableName
   SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
   WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))

Dans cette instruction révisée :

  • Les valeurs d'espace réservé (%s) sont incluses dans la requête SQL dans le cadre d'un tuple. Cette approche évite les vulnérabilités d'injection SQL.
  • La syntaxe SQL suit la convention correcte pour mettre à jour plusieurs colonnes dans une seule instruction.

Vous pouvez également utiliser la manipulation de chaîne de base pour la commande de mise à jour comme suit :

cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))

Cependant, cette méthode est déconseillée car elle laisse le code vulnérable à l'injection SQL attaques.

Pour éliminer tout problème potentiel lié aux conventions de remplacement de chaînes dans différents backends de bases de données, il est conseillé d'utiliser la première approche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn