Lors de l'exécution des éléments suivants:
import pymysql
db = pymysql.connect(Host='localhost', port=3306, user='root')
cur = db.cursor()
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))
La sortie est1
Comment pourrais-je modifier le code afin que la valeur réelle du ParentGuardianID (qui est "001") soit imprimée par opposition à 1
.
Je suis sûr que la réponse est simple mais je suis un débutant, donc toute aide serait très appréciée - merci!
cur.execute()
renvoie simplement le nombre de lignes affectées. Vous devez faire cur.fetchone()
pour obtenir le résultat réel, ou cur.fetchall()
si vous attendez plusieurs lignes.
La méthode cursor.execute()
donne un curseur lié au résultat de la phrase SQL. Dans le cas d'une requête select
, elle renvoie les lignes (le cas échéant) qui la rencontrent. Ainsi, vous pouvez parcourir ces lignes en utilisant une boucle for
par exemple. De plus, je vous recommande d'utiliser pymysql.cursors.DictCursor
car il permet de traiter les résultats de la requête comme un dictionnaire.
import pymysql
db = pymysql.connect(Host='localhost', port=3306, user='root')
cur = db.cursor(pymysql.cursors.DictCursor)
UserId = 'whatsoever'
sql = "SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='%s'"
cur.execute(sql % UserId)
for row in cur:
print(row['ParentGuardianID'])
Bonne chance!