如何使用多变量pymysql

问题描述:

如何使用多个变量我的查询:

import pymysql 

def get_firstname(y): 


db = pymysql.connect(host="xxx.xxx.xxx.xxx", 
    user="xxxx", 
    passwd="xxxxx",  
    db="XXXXXXX") 

cur = db.cursor() 

query = "SELECT first_name FROM information WHERE x = y;" 
cur.execute(query, (y)) 

result = str(cur.fetchone()[0]) 
return(result) 

x = user_id 
y = 1 


print (get_firstname(y)) 

我希望能X更改为不同的变量,这取决于我的选择。像user_id,姓氏,电子邮件等我的数据库中的所有列。 #y是另一个表示数据库中列值的变量。如何使用多变量pymysql

练习1:如果x是“USER_ID”和y是“1”,那么结果是USER_ID 1

练习2人的名字:如果x是“电子邮件”,y是“人@ person.com“,那么结果就是电子邮件地址为[email protected]的人的名字。

使用下面的代码:

import pymysql 

def get_firstname(x, y): 
    db = pymysql.connect(host='xxx.xxx.xxx.xxx', 
     port=3306, 
     user='xxxx', 
     password='xxxxxxxx',  
     db='test_db') 

    cur = db.cursor() 

    query = "SELECT first_name FROM `information` WHERE %s" %(x) 
    final_query = query+"=%s" 
    #print(final_query) 
    cur.execute(final_query, (y,)) 

    result = cur.fetchall() 
    return(result) 

x = 'user_id' 
y = 1 

output = get_firstname(x,y) 
if output: 
    for x in output: 
     print(x)[0] 

Sample Inputs:

x = 'email_id' 
y = '[email protected]' 

x = 'user_id' 
y = 1  // Not enclosed with single quotes 
+0

感谢对此事发表评论。 – Bjarke

+0

虽然给了我另一个问题。 我用它作为 x ='last_name' y ='Larsen' 我有几个用户使用该姓氏,但它只显示具有该姓氏的第一位用户。它可以重复代码,直到我的数据库中没有更多用户使用该姓氏,然后将它们全部打印出来? – Bjarke

+0

我已更新代码以获取所有值。 –