2014-04-21 6 views
0

루프에서 2 줄 아래에서 전화를 걸면 주어진 시간에 수천 개의 연결이 열립니다. 때때로이 코드는 'NoneType' object has no attribute cursor이라는 예외를 발생시킵니다.NoneType 객체에는 속성 커서가 없습니다.

왜 이런 일이 발생합니까? MYSql에 DB 연결이 부족합니까?

conn=MYSQLdb.connect(params) 

conn.cursor() 
+0

소리가 들립니다. 루프 내부에서 연결하는 특별한 이유가 있습니까? 같은 연결을 다시 사용할 수 없습니까? 완료되면 닫으시겠습니까? –

+0

@KarlKnechtel 시스템 요구 사항은 여러 행을 계단식으로 추가하여 하나의 연결이 작동하지 않도록하는 것입니다. 내가 끝내 자마자 나는 연결을 닫고있다. 따라서 한 번에 수백 개의 HTTP 요청이 시스템에 들어오고 각 요청은 데이터베이스에 항목을 트리거합니다. 그래서 나는 그들 모두를위한 단일 연결을 사용할 수 없다. –

+0

note 여러분이 이미 알고있는 것처럼 들리지만, 어구가 모호하기 때문에 'NoneType'개체에 'x'예외가 없음을 알리고 싶습니다. None (null) 개체의 특성을 얻으려고했다는 것을 나타냅니다. –

답변

-2

오늘이 문제를 만났습니다. MySQL DB 문서를 읽었을 때 저를 도울 수있는 것을 발견했습니다. 이것은 아마도 당신에게 도움이 될 것입니다. 이제 의사는 다음과 같이 말합니다.

이제 DB에 대한 연결이 열려있어 쿼리를 수행하려고합니다. 음, MySQL은 더 커서없이 매개 변수 대체가 없다, 그래서 당신은 db.query()에 완전한 쿼리 문자열을 통과해야 : 지금은

db.query("""SELECT spam, eggs, sausage FROM breakfast WHERE price < 5""") 

, 어쩌면이 라이브러리는 일부 변경 한 다음 속성 커서이었다에 의해 대체한다 질문.

+0

다음 줄도 doc 커서 ([cursorclass])를 형성합니다 MySQL은 커서를 지원하지 않습니다. 그러나 커서는 쉽게 에뮬레이트됩니다. 선택적 매개 변수로 대체 커서 클래스를 제공 할 수 있습니다. 이 값이 없으면 연결 개체 또는 표준 Cursor 클래스를 만들 때 지정한 값이 기본값으로 사용됩니다. 또한 사용법 섹션에서 추가로 제공되는 커서 클래스를 참조하십시오. – HankLee

관련 문제