2017-12-19 8 views
0

codeigniter의 form_validation에 is_unique가 동기화되어 있습니까? 두 개의 동시 요청에서 이메일을 확인하고 둘 다 false가되면 데이터베이스에 값을 쓰거나 동기화하는 방법은 무엇입니까?is_unique codeigniter는 동기화 되었습니까?

return $this->CI->db->limit(1)->get_where($table, array($field => $str))->num_rows() === 0 

당신이 간단한 get_where입니다 볼 수 있듯이 :

+1

이러한 경쟁 조건이 걱정된다면 거래를 사용하십시오. – ceejayoz

답변

0

를 (열이 고유로 설정되지 않은 경우) 이것은 is_unique 기능 (본질적으로)입니다. num_rows이 0이면 값이 고유하므로이 함수는 true를 반환합니다.

그 말은, 귀하의 웹 사이트가 너무 많은 트래픽을 발생시켜 동시에 요청이 발생한다는 것을 의심합니다. 그래도 작성할 수있는 모든 기능은 기본적으로 form_validation 구현과 같습니다.

이제 유형에 따라 거래와 관련된 잠재적 문제를 완화 할 수 있습니다. 안타깝게도 CodeIgniter에는 Laravel이나 다른 최신 프레임 워크가 제공하는 멋진 잠금 기능이 없습니다.