2017-08-02 53 views
1

我用python操作postgresql數據庫,執行sql,它刪除了引號,導致查詢失敗,怎麼迴避?python操作數據庫錯誤

def build_sql(self,table_name,keys,condition): 
    print(condition) 
    # condition = { 
    #  "os":["Linux","Windows"], 
    #  "client_type":["ordinary"], 
    #  "client_status":'1', 
    #  "offset":"1", 
    #  "limit":"8" 
    # } 
    sql_header = "SELECT %s FROM %s" % (keys,table_name) 
    sql_condition = [] 
    sql_range = [] 
    sql_sort = [] 
    sql_orederby = [] 
    for key in condition: 
     if isinstance(condition[key],list): 
      sql_condition.append(key+" in ("+",".join(condition[key])+")") 
     elif key == 'limit' or key == 'offset': 
      sql_range.append(key + " " + condition[key]) 
     else: 
      sql_condition.append(key + " = " + condition[key]) 
    print(sql_condition) 
    print(sql_range) 
    sql_condition = [str(i) for i in sql_condition] 
    if not sql_condition == []: 
     sql_condition = " where " + " and ".join(sql_condition) + " " 
    sql = sql_header + sql_condition + " ".join(sql_range) 
    return sql 

錯誤:

MySQL Error Code : column "winxp" does not exist 
LINE 1: ...T * FROM ksc_client_info where base_client_os in (WinXP) and... 
+0

請不要在PostgreSQL,如果僅僅是爲了MySQL的標記它(和錯誤提示) –

回答