2017-10-19 48 views
1

如何使用多個變量我的查詢:

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]的人的名字。

回答

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 = '[email protected]' 

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

感謝對此事發表評論。 – Bjarke

+0

雖然給了我另一個問題。 我用它作爲 x ='last_name' y ='Larsen' 我有幾個用戶使用該姓氏,但它只顯示具有該姓氏的第一位用戶。它可以重複代碼,直到我的數據庫中沒有更多用戶使用該姓氏,然後將它們全部打印出來? – Bjarke

+0

我已更新代碼以獲取所有值。 –