从特定行中选择特定列(Python-MySQL)

时间:2018-12-16 18:07:52

标签: python mysql

所以我对Python不那么有经验,但是我真的很喜欢用它做东西。 我决定在我的一个项目中开始使用Python与MySQL进行交互。

我想编写一个函数,将用户名作为输入并返回密码作为输出。

这是我尝试做的事情:

def get_passwd(user_name):
    user_passwd = mycursor.execute("SELECT passwd FROM users WHERE name = '%s'", (user_name))
    print(user_passwd)

get_passwd("Jacob")

但这只是打印“无”。

我的桌子看起来像这样:

2 个答案:

答案 0 :(得分:0)

不清楚您要使用哪个软件包来访问数据库。 假设是sqlalchemy,则缺少的是fetch命令。

所以您应该添加-

def get_passwd(user_name):
    user_passwd = mycursor.execute("SELECT passwd FROM users WHERE name = '%s'", (user_name))
    user_actual_passwd = user_passwd.fetchone()
    print(user_actual_passwd)
get_passwd("Jacob")

查看更多here

**随着问题的更新而更新**

我将确保查询字符串是您所期望的。 做-

query = "SELECT passwd FROM users WHERE name = '%s'", (user_name)
print (query)

如果查询符合您的期望,请尝试直接在数据库上运行该查询,看看是否获得任何结果。

答案 1 :(得分:0)

代替

user_passwd = mycursor.execute("SELECT passwd FROM users WHERE name = '%s'", (user_name))

将某些内容用作

mycursor.execute("SELECT passwd FROM users WHERE name = '%s'", (user_name))
row = mycursor.fetchone()

user_passwd = row[0]