2016-10-17 3 views
0

誰かが同じ質問をしても私は前に見ましたが、私は似たような質問は見ませんでした。MySQLのpython:カーソルが変数名を返します

def get_session(Var = '', Key=''): 
    conn = connection() 
    cursor = conn.cursor() 
    print "Var: "+Var 
    cursor.execute("Select %(var)s FROM users WHERE sessions = %(key)s",{'var':Var,'key':Key}) 
    if(cursor.rowcount == 1): 
     name = cursor.fetchone() 
     print name 
     return name 

出力は次のようである:

get_session(Var = 'NAME', Key='asdf123') 

変数:NAME

( 'NAME')正しい出力がなければならない

+----+----------+----------+---------------------------+ 
| ID | NAME  | PASS  | sessions     | 
+----+----------+----------+---------------------------+ 
| 1 | Potato | test  | asdf123     | 
| 2 | asdf123 | test2 | asdasd     | 
+----+----------+----------+---------------------------+ 

get_session(Var = 'NAME', Key='asdf123') 

変数:NAME

( 'ポテト')

又は

get_session(Var = 'PASS', Key='asdf123') 

変数:PASS

( 'テスト')

私は、主な問題はmysqlが引用符で名前を検出することだと思っていましたが、修正方法はわかりません。

答えて

0

を自動的に

def get_session(Var = '', Key=''): 
    conn = connection() 
    cursor = conn.cursor() 
    sql = "Select "+ Var+" FROM users WHERE sessions = %(key)s" 
    print "Var: "+Var 
    cursor.execute(sql,{'key':Key}) 
    print str(cursor.rowcount) 
    if(cursor.rowcount == 1): 
     name = cursor.fetchone() 
     print name 
     return name 
    else: 
     return None 
    cursor.close() 
    conn.close() 

回答ありがとうございます。

0

あなたは試すことができます:

cursor.execute("Select %s FROM users WHERE sessions = '%s'" %("Name","asdf123")) 

をので、クエリは次のようになります。

Select Name FROM users WHERE sessions = 'asdf123' 

あなたにも 例:変数を使用することができます。問題は置いSQL引用符た

name_of_col = "Name" 
session_name = "asdf123" 

cursor.execute("Select %s FROM users WHERE sessions = '%s'" %(name_of_col,session_name )) 
関連する問題