2017-08-02 12 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 

エラー:あなたはそれを渡す前に、それらを追加する必要があるのいずれかのようにあなたは私が多くのPythonの経験を持っていないが、基本的にあなたがその順序で単一引用符を持っていない

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

それが唯一のMySQL用の場合はPostgreSQLとそれをタグ付けしないで下さい(およびエラーがことを示唆しています) –

答えて