Zend_Db_Table->update()
메서드를 사용하여 데이터로 테이블을 업데이트하려면 "where"절에서 바인드 변수를 사용할 수 없습니다.Zend_Db_Table-> update() with where 절에서 바인드 변수를 사용하는 방법
방법 서명은 다음과 같습니다
int update($data, array|string $where)
보통이 같은 방법을 호출합니다 :
$table = new Bugs();
$data = array(
'updated_on' => '2007-03-23',
'bug_status' => 'FIXED'
);
$where = $table->getAdapter()->quoteInto('bug_id = ?', 1234);
$table->update($data, $where);
quoteInto
바인드 변수를 사용하는 방법이 필요합니다. 그렇지 않으면 DBMS가이 쿼리를 효과적으로 캐시하지 않습니다.
나는 뭔가를 놓치고 있습니까, 아니면 젠드의 부분을 감독하고 있습니까?
감사합니다. 필자는 내부 기업용 애플리케이션에서 Oracle을 사용하고 있습니다. 당신은 정확합니다. 성능은 그런 문제가 아닙니다. 가능하면 모범 사례를 따르기를 원하기 때문에이 질문을 던졌습니다. Zend_Db_Table을 사용하여이 제한을 제안하거나 수락 할 때 코드를 다시 작성할 수 있습니다. 바인딩되지 않은 WHERE 절이기 때문에 disapointing입니다. SET 절은 바인딩 된 변수를 사용합니다. 쿼리의 모든 부분에 대해 바운드 변수를 사용하는 방법을 제공한다고 생각할 것입니다. – asgeo1