以下を実行する場合:
import pymysql
db = pymysql.connect(Host='localhost', port=3306, user='root')
cur = db.cursor()
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))
出力は1
です
ParentGuardianIDの実際の値(「001」)が1
ではなく出力されるように、コードを変更するにはどうすればよいですか。
答えは簡単だと思いますが、私は初心者なので、どんな助けでも大歓迎です-ありがとう!
cur.execute()
は、影響を受ける行の数を返すだけです。実際の結果を取得するにはcur.fetchone()
を、複数の行が必要な場合はcur.fetchall()
を実行する必要があります。
cursor.execute()
メソッドは、SQL文の結果に関連するカーソルを提供します。 select
クエリの場合は、それを満たす行(ある場合)を返します。したがって、たとえばfor
ループを使用して、これらの行を反復できます。また、pymysql.cursors.DictCursor
を使用することをお勧めします。クエリ結果を辞書として扱うことができるためです。
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'])
幸運を!