1
'getIndexMySQLQuery'쿼리가이 구문과 잘 작동하지만 다른 하나는 'updateIndexMySQLQuery'가 작동하지 않습니다. 어떤 힌트 나 제안을 어떻게 수정합니까? 모든 의견과 제안은 높이 평가됩니다.
A
답변
2
쿼리 문자열 내에 세 개의 자리 표시자를 사용하고 보간을 위해 하나의 변수 만 제공하므로 두 번째 방법이 작동하지 않습니다.
updateIndexMySQLQuery = """UPDATE %s
SET numberID=%%s WHERE numberID=%%s;""" % (tableName,)
문자열 서식 메커니즘이 퍼센트 기호는 당신이, 3 개 값을 제공 할 것으로 기대하지 않습니다이 방법 (답의 첫 번째 버전을 나에게 수치) "탈출".
0
처음에는 테이블 이름을 바꾸려면 % s를 사용하고 물음표를 사용하여 매개 변수 바꾸기를 만듭니다.
updateIndexMySQLQuery = """UPDATE %s
SET numberID=? WHERE numberID=?;""" % (tableName,)
...
self.cursorMySQL.execute(updateIndexMySQLQuery,(updateIndex,indexID))
0
감사합니다. 나는 단지 전체 기능을 다시했다. 다음은 작동 방식과 모양입니다.
def update_tableIndex(self,tableName,indexName):
getIndexMySQLQuery = """SELECT %s
FROM %s;""" % (indexName,tableName,)
updateIndex=1
self.cursorMySQL.execute(getIndexMySQLQuery)
for row in self.cursorMySQL:
indexID = row[0]
updateIndexMySQLQuery = """UPDATE %s
SET %s=%s WHERE
%s=%s;""" % (tableName,
indexName,updateIndex,
indexName,indexID)
self.cursorMySQL.execute(updateIndexMySQLQuery)
updateIndex+=1
따라서 할 일은 매개 변수로 열 이름과 테이블 이름을 알리는 것입니다. 데이터베이스의 다른 모든 테이블에 대해 코드를 재사용 할 수 있습니다.
다른 사람들에게도 유용 할 수 있기를 바랍니다.
+0
아니요, 이것은 전혀 유용하지 않으며 사실 매우 위험합니다. 매개 변수 값을 쿼리에 연결하지 말고 데이터베이스 API에 그대로 두어야합니다. 전달할 매개 변수가 인용되고 올바르게 이스케이프 처리되는 것을 어떻게 보장합니까? 간단히 말해서, 그렇게하지 마십시오. – shylent
관련 문제
- 1. PHPUnit에 매개 변수 전달하기
- 2. 돼지 자이 썬 스크립트에 매개 변수 전달하기
- 3. Quartz에서 작업에 매개 변수 전달하기
- 4. JavaScript로 URL 매개 변수 전달하기
- 5. 빵 부스러기에 매개 변수 전달하기
- 6. Struts - 액션간에 매개 변수 전달하기
- 7. Grails 인덱스 매개 변수
- 8. 안드로이드에서 SL4A를 사용하여 파이썬 스크립트에 매개 변수 전달하기
- 9. 파이썬 요청 매개 변수
- 10. 파이썬 함수 매개 변수
- 11. 파이썬 URL 매개 변수
- 12. 콜백 매개 변수 전달하기 Ajax 게시
- 13. JQuery cluetip anchor로 매개 변수 전달하기
- 14. mysql 튜닝 매개 변수
- 15. 오브젝트에서 여러 변수 철회 자동화하기
- 16. 파이썬 __import__ 매개 변수 혼란
- 17. ViewBinder에 변수 전달하기
- 18. PHP에서 MySQL 행의 출력 자동화하기
- 19. Python과 Javascript 사이에 변수 전달하기
- 20. 선택적 매개 변수 및 날짜 인덱스
- 21. 다중 인덱스 컨테이너를 높이기위한 템플릿 매개 변수
- 22. Erlydtl 블록에 로컬 변수 전달하기
- 23. MySQL 사용자 매개 변수 살균
- 24. 함수 사이의 변수 전달하기
- 25. Jquery에 HTML 변수 전달하기
- 26. Python에서 SQLite 변수 전달하기
- 27. jquery에서 변수 전달하기
- 28. 세션 변수 전달하기
- 29. Vb.net에서 숨겨진 변수 전달하기
- 30. Jquery의 버튼에서 변수 전달하기
물음표 플레이스 홀더는 MySQLdb 와도 작동합니까 (sqlite3에서 사용하는 것으로 알고 있습니다)? – shylent
그들은 다른 언어로 mysql과 함께 작동하므로 왜 안 보이지는 않습니다 ... DBAPI2.0 요구 사항입니까? –
이 경우에 이것은 프로그래밍 언어 별 db-api의 사양이며, MySQL 자체와 관련이 있습니다 (잘못된 것일 수 있음). 나도 알아,이 파이썬의 데이터베이스 API 표준의 일부이지만, MySQLdb의 설명서는 % 스타일의 자리 표시자를 언급합니다. 나는 그것을 지금 시험 할 수 없으므로 나는 그것을 여러분에게 남겨 둘 것입니다 :) – shylent