2009-11-17 3 views
3

Zend Framework를 사용할 때 LIMIT 1 절을 업데이트에 추가하려면 어떻게합니까?Zend Framework에서 update-query에 대한 제한을 어떻게 추가합니까?

Zend_Db_Select -classes와 달리 자체적으로 실행하기 때문에 나는 Zend_Db_Table_Abstract::update()을 사용하지 않도록 강요 받고 있습니다.

이 작업을 수행하는 이유는 단지 예방책 일 뿐이므로 Zend_Db_Table_Abstract::update()의 구문이 코드에서 발견 될 때 더 유용하다는 것보다 Zend_Db_Adapter_Abstract::query()이라고 생각합니다.

답변

3

수 없습니다.

정확한 문제에 대해 issue tracker에 문제가 발생했습니다. 그러나이 기능은 아직 구현되지 않았습니다.

+1

문제 추적기를 검색해 주셔서 감사합니다. – chelmertz

1

왜 그렇게하고 싶습니까 ??? 단일 레코드를 업데이트하려면 레코드의 기본 키를 사용하고

UPDATE <table> SET field=<newvalue>, ... WHERE key = <keyvalue>; 

쿼리를 사용해야합니다.

+0

1) 유효 SQL 2)'Zend_Db_Select'로서'LIMIT 1 '이 여분의 안전성 체크 인 동적 인 입력을 포함 할 수 있습니다 (예를 들어 일반적인 필터/유효성 검사가 실패하거나 다른 프로그래머가 잘못 작성한 경우) , 3) 한 행을 업데이트 한 후 검색을 중지해야하므로 더 빠릅니다. – chelmertz

+0

1). MySQL에서만 다른 RDBMS는이 구문을 허용하지 않으므로 코드가 이식 가능하지 않습니다 (아마 Zend Framework에서 사용할 수없는 이유 중 하나 일 것입니다). 2). 그렇다면 실제로 업데이트/삭제를 수행하기 전에 하나 이상의 레코드가 비즈니스 로직에 영향을 미치는지 확인해야합니다. – wimvds

+0

1) 다른 DBMS로 이식 할 때, update()의'LIMIT'은 매끄럽게 실행되어야하는 다른 모든 것에 비해 처리하기에 매우 작은 문제입니다. 게다가, MySQL에서 허용되기 때문에 아마도'update()'는 현재의 위치에 맞지 않을 수도 있습니다 (설정 가능성 밖). MySQL을 언급 해 주셔서 고마워요, 나는 그걸 몰랐습니다. 2) 물론 유효한 지점이지만 가능한 추가 보안 조치를 취하겠습니다. 3) uncommented 간다하지만 속도가 많은 양의 행을 업데이트하는 쿼리에 큰 영향을 미칠 수 있다고 생각합니다. – chelmertz

관련 문제