Python MySQL 语句输出:0 或 1
Python MySQL Statement output: 0 or 1
我试图从我的数据库中获取信息并打印它,但不幸的是,它没有从 Table 中打印信息,而是打印 0 或 1。
为什么要这样做?
有人可以帮我吗?
sql = ("SELECT code FROM testing WHERE email = ((%s))")
sql2 = a.execute(sql, (fullemail))
sqlusername = ("SELECT username FROM testing123 WHERE code = ((%s))")
username = a.execute(sqlusername, (sql2))
print("Test3")
print(username)
谢谢。
execute()
方法只是 returns 受影响的行数。
您必须使用 .fetchall()
或等效(例如 .fetchone()
...)DBAPI 方法来获取结果集。
此外,在单个值周围单独使用括号:(fullemail)
不会被识别为元组,您需要明确添加逗号,以便 Python 将其识别为元组:(fullemail, )
sql = ("SELECT code FROM testing WHERE email = %s")
a.execute(sql, (fullemail, ))
sql2 = a.fetchall()
print(sql2)
sqlusername = ("SELECT username FROM testing123 WHERE code = %s")
a.execute(sqlusername, (sql2[0][0], ))
username = a.fetchall()
print("Test3")
print(username)
取决于您使用的库:
- MySQLdb (python 2.7)
- mysqlclient(python3 的 MySQLdb)
- PyMySQL(纯Python)
您还可以使用 DictCursor
将结果集行设为 dict
而不是 list
。用法如下:
from pymysql.cursors import DictCursor
import pymysql
db = pymysql.connect(host="", user="", passwd="", cursorclass=DictCursor)
with db.cursor() as cur:
cur.execute("SELECT ...")
results = cur.fetchall()
这将为您提供字典列表而不是列表列表。
我试图从我的数据库中获取信息并打印它,但不幸的是,它没有从 Table 中打印信息,而是打印 0 或 1。
为什么要这样做? 有人可以帮我吗?
sql = ("SELECT code FROM testing WHERE email = ((%s))")
sql2 = a.execute(sql, (fullemail))
sqlusername = ("SELECT username FROM testing123 WHERE code = ((%s))")
username = a.execute(sqlusername, (sql2))
print("Test3")
print(username)
谢谢。
execute()
方法只是 returns 受影响的行数。
您必须使用 .fetchall()
或等效(例如 .fetchone()
...)DBAPI 方法来获取结果集。
此外,在单个值周围单独使用括号:(fullemail)
不会被识别为元组,您需要明确添加逗号,以便 Python 将其识别为元组:(fullemail, )
sql = ("SELECT code FROM testing WHERE email = %s")
a.execute(sql, (fullemail, ))
sql2 = a.fetchall()
print(sql2)
sqlusername = ("SELECT username FROM testing123 WHERE code = %s")
a.execute(sqlusername, (sql2[0][0], ))
username = a.fetchall()
print("Test3")
print(username)
取决于您使用的库:
- MySQLdb (python 2.7)
- mysqlclient(python3 的 MySQLdb)
- PyMySQL(纯Python)
您还可以使用 DictCursor
将结果集行设为 dict
而不是 list
。用法如下:
from pymysql.cursors import DictCursor
import pymysql
db = pymysql.connect(host="", user="", passwd="", cursorclass=DictCursor)
with db.cursor() as cur:
cur.execute("SELECT ...")
results = cur.fetchall()
这将为您提供字典列表而不是列表列表。