2011-08-22 2 views

답변

4

(... 갱신, 삽입 등) 쓰기 유형의 쿼리에 영향을받은 행 수를 볼 수 :

$result = $this->db->update('mytable', $data); 

해당 값이 01인지 확인하십시오.(성공) 또는 FALSE (실패) update 내부적으로 query를 실행 한 후 query (Ref)의 반환 값 반환

쿼리() 함수는 당신이 당신의 결과를 표시하는 데 사용할 수있는 유형의 쿼리를 실행 "읽기"데이터베이스 결과 객체를 반환합니다. "쓰기"유형 쿼리가 실행되면 성공 또는 실패 여부에 따라 TRUE 또는 FALSE를 반환합니다.

+0

"$ result = $ this-> db-> update ('users', $ data, array ('UserName'=> $ _POST [ "UserName"])); "사용자 이름이 테이블에 없으면 여전히 성공을 반환합니다. –

+0

글쎄요. 코드를 작성할 때 항상 두뇌를 사용해야합니다. 업데이트 대신 삽입하려는 경우에는 수행해야합니다. 그렇지 않으면 존재하지 않는 행을 업데이트하려고 시도 할 때 오류가 발생하도록 db를 구성 할 수 있습니다. 업데이트를 위해서, 나는 존재하지 않으면 nsert : http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html, http://stackoverflow.com/questions/1361340/how-to-insert-if -not-exists-in-mysql – hakre

2

사용

$this->db->affected_rows() 

update 함수는 값을 반환

http://codeigniter.com/user_guide/database/helpers.html

+0

필자는이 또한 메신저 암호를 업데이트하려고 말하고 변경없이 이전 다음 영향을받는 행을 동일한 암호를 입력 메신저 0 :( –

+0

당신의 두뇌를 계속 반환 할 수 있습니다 시도)은 = 도움을 바란다 0 것 코딩 할 때 스위치가 켜져 있습니다. 누설을하지 않으면 업데이트가 모든 행에 영향을 미치지 않습니다.이 기능은 발표 된대로 작동하며 바보가 아니며 도구로 사용하십시오. – hakre

0

두 답변이 모두 유효했습니다. 케이스에 따라 각각 하나씩 사용해야합니다. 쿼리가 사용하는이 방법은 실행 된 경우 만 확인하는 경우 :

$this->db->affected_rows() 

하지만 난 항상 두 번째 방법을 사용 : 당신이 정말로 원하는 경우

$result = $this->db->update('mytable', $data); 

을 행의 수는 두 번째 방법이 더 영향 . 업데이트 쿼리가 그 좋은 예입니다. 쿼리를 성공적으로 수행 할 수 있고 업데이트하려고 시도한 값이 실제로 쿼리에서 보내는 값과 같기 때문에 데이터베이스에 아무 것도 업데이트되지 않았습니다.

위양성입니다. 그리고 영향을받는 행은 내가

+0

네,하지만이 경우 어떻게 이것이 거짓 긍정 여부를 알 수 있습니까? –

관련 문제