2012-11-14 2 views
0

Im는 python과 SQL에 새로운 브랜드이지만, 학습 곡선을 즐기고 있습니다.레코드 및 맵 문자열을 필드에 삽입 하시겠습니까?

나는 pymssql을 사용하고 있으며, 내가 상상하는 것이 상당히 기본적인 문제 일 것입니다.

함수 내에서 테이블에 하나의 레코드를 삽입하고 이전에 계산 한 일부 변수를 INSERT 문에 전달해야합니다.

현재 내 코드는 다음과 같습니다

execute() takes at most 2 positional arguments (4 given)

내가 잘못하고, 나는 더 우아한 것 무엇을 배우고 명심하고 무엇 :이 오류를 반환

var 1 = "Hello"
var 2 = "Bye"
var 3 = "12/12/12
cursor.execute("INSERT INTO table (field1, field2, field3) VALUES(%s, %s, %s)", var1, var2, var3)

이 일을하는 방법?

답변

2

execute()에 각 인수를 개별적으로 전달합니다. 두 개만 필요합니다.

cursor.execute("INSERT INTO table (field1, field2, field3) VALUES(%s, %s, %s)", 
       (var1, var2, var3)) 

이제 두 개의 인수를 전달합니다. 첫 번째 변수는 문자열이고 두 번째 변수는 변수 중 tuple입니다 (추가 ()에 주목하십시오).

+0

감사합니다. 누구든지 시간이 있다면 내 예제에서 최신 고급 문자열 형식을 사용하여 대답을보고 싶습니다. – Simon

+0

쿼리 문자열과 변수를 (별도로) 전달해야하므로 고급 문자열 서식이 적용되지 않습니다. 이것은 execute 메소드가 SQL에 대한 변수의 값을 적절히 살균 할 수 있도록하기위한 것입니다. –

+0

감사합니다. 따라서 (나는 아닙니다) 파이썬의 향후 버전을 사용하는 것으로 제한되어 있다면 문자열 형식이 사용되지 않을 것이라고 생각합니다. 어떻게해야합니까? – Simon