2012-08-29 4 views
1

에서 $ (1) 나는 간단한 테이블 (이름 테스트)가 데이터 유형을 판별 할 수 없습니다. 모듈에 대한 데모 파일이 http://sprunge.us/VgLY?python에서 볼 수는 매개 변수 파이썬 pgSQL의

>>> for i in db.execute("select * from test"): print i 
... 
(1, 'FOO', None) 
>>> query = "UPDATE test set name = '$1' where name = '$2'" 
>>> cu.execute(query, "myname", "FOO") 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "/usr/lib/python2.7/site-packages/pgsql.py", line 119, in execute 
    ret = self._source.execute(operation, params) 
ProgrammingError: ERROR: could not determine data type of parameter $1 

(I 파이썬 - pgSQL의 http://pypi.python.org/pypi/python-pgsql/을 사용하고 있습니다).

답변

5

문자열 내에 $1$2 주위에 작은 따옴표가있을 수 있습니다. PYGresql의 주요 변화는 말한다 : 바인드 매개 변수에 대한

  • 지원, 그래서 하나를 있으리라 믿고있어 광범위 비용과의 인용 취약한 사용자가 제공 한 데이터

의 필요성을 경감 따옴표가 너무 많은 따옴표로 문자열을 오버로드하거나 python-pgsql에서 파서를 깨는 것입니다.

0

작은 따옴표를 $ 1 및 $ 2에 추가하지 마십시오. ... 형식이 인식되지 않을 수 있습니다.