2017-04-02 2 views
0

단일 명령에서이 두 가지 업데이트를 수행하는 방법이 있습니까?Python Sqlite 여러 값을 업데이트하십시오.

cur.execute("UPDATE table_name1 SET email = '[email protected]' WHERE id = 4") 
cur.execute("UPDATE table_name1 SET phone = '0400-123-456' WHERE id = 4") 

나는 모든 종류의 변형을 시도했지만 작동하지 않습니다.

편집 : 전자 메일, 전화 및 매개 변수로 전달하고 싶습니다.

+0

[**'sqlite3' ** 문서] (https://docs.python.org/2/library/sqlite3.html)를 보셨습니까? –

+0

예 피터. 내가 보았지만 여러 값에 대해 UPDATE를 수행하는 Python 구현에 도움이되지 않습니다. –

답변

1

다음 작품들 : 현재 표준 SQL입니다.

cur.execute("""UPDATE table_name1 
      SET email = '[email protected]', phone = '0400-123-456' 
      WHERE id = 4""") 
+0

나를 위해 구문 오류가 발생했습니다. 테이블 이름과 SET 사이에 따옴표를 제거해야했습니다. 'cur.execute ("UPDATE table_name1 SET 이메일 = '[email protected]', 전화 = '0400-123-456'" "어디 = 4")' –

1

확인. 매개 변수를 사용하는 솔루션을 만들었습니다.

최초의 대답은 David입니다. 작은 구문 오류 (해당 답변에 대한 설명에서 수정 됨)가 있지만 매개 변수화없이 작동시키는 법을 배우는 데는 충분했습니다.

는 (참고 :. 내가 매개 변수와 협력의 필요성을 추가 할 수있는 질문을 편집하기 전에 다윗이 자신의 답변을 게시 생각)

그런 다음 this answer 나를 솔루션을 parametise 도왔다.

여기 내 질문에 대한 해결책입니다. 나는 원래 질문을 게시하기 전에 검색을 꽤 많이했기 때문에 다른 사람이 같은 문제를 가지고있는 경우에 대비하여 화분에 옮겼습니다. 답을 찾을 수 없습니다.

conn = sqlite3.connect('connex.db') 
cur = conn.cursor() 
mobileval = '0400-123-456' 
emailval = '[email protected]' 
constrain = 4 

cur.execute("UPDATE licontacts310317 SET liemail=%s, limobile=%s 
      WHERE %s=?" % (liemailval, limobileval, id), (constrain,)) 

conn.commit() 
conn.close()