13

以下を実行する場合:

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

答えは簡単だと思いますが、私は初心者なので、どんな助けでも大歓迎です - ありがとう!

4

2 に答える 2

28

cur.execute()影響を受けた行数を返すだけです。cur.fetchone()実際の結果を取得するcur.fetchall()場合、または複数の行が予想される場合は、実行する必要があります。

于 2015-02-15T20:15:49.193 に答える
21

この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'])

幸運を!

于 2016-04-19T15:27:00.943 に答える