如何在pymysql中使用多个变量

时间:2017-10-19 12:22:02

标签: python mysql python-3.x 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是另一个表示我的数据库中列的值的变量。

Ex1:如果x是" user_id"和y是" 1",然后结果是user_id 1的人的名字。

Ex2:如果x是"电子邮件"并且y是" person@person.com",然后结果是电子邮件person@person.com的人的名字。

1 个答案:

答案 0 :(得分:1)

使用以下代码:

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 = 'xx@gmail.com'

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