2011-03-23 2 views
1

Zend에서 MySQL 열에 1을 더한 정수를 증가시키는 방법이 있습니까?MySQL의 열 증가

감사

편집 :

내 현재 코드가 같은 수 있습니다 :

$row = $this->find($imageId)->current(); 
$row->votes = // THIS IS WHERE I WANT TO SAY INCREMENT 
$row->save(); 
+1

예에서 온 - 당신이 젠드 프레임 워크를 의미합니까 자세한 내용 – bensiu

+0

을 제공 한 후? 그렇다면 어떤 구성 요소입니까? Zend_Db, Zend_Db_Table, 다른 것? – Phil

답변

0

나는 다음과 같은 제안을 다른 요청에서 경쟁 조건에 대해 보호하지 않습니다 ++

$row->votes++; 
+0

아주 간단한 해결책입니다. 감사합니다. . – edwinNosh

+2

이것은 연결 사이의 경쟁 상태로 고통 받고 있으며 나쁜 해결책입니다. –

17

예있다. 다음 예는 수량 필드 제품을 사용하고 증가의 :

$table  = 'products'; 
$data  = array('prd_qnty' => new Zend_Db_Expr('prd_qnty + 1')); 
$where[] = $db->quoteInto('pr_id = ?', $this->pr_id); 
$db->update($table, $data, $where); 
+0

내 오래된 대답이나 새로운 답변에 대한 하향식입니까? 나는 새로운 것이 정확하다는 것을 꽤 확신한다, 그렇지? – RDL

+0

업데이트 된 질문보기 감사합니다 – edwinNosh

+0

예,'$ row-> votes ++;'가 될 길입니다. 앞으로는 관련 코드를 질문에 표시하는 것이 도움이되므로 최선의 해결책을 제시 할 수 있습니다. – RDL

5

표를 제공 할 수 있음을를하는 것이 바람직하다, 그 이유입니다 데이터베이스 솔루션. 예를 들어

: 상상이 요청은 거의 동시에

1st request loads object - votes is 500 
2nd request loads object - votes is 500 
1st increments value in memory - votes is 501 
2nd increments value in memory - votes is 501 
1st saves to db - votes is 501 
2nd saves to db - votes is 501 (should be 502)