본문 바로가기
반응형

분류 전체보기129

중복되지 않는 코드 발급 feat codeigniter 프로젝트 진행 중 코드를 발급해야하는 경우가 발생했다. 아래에 작성한 코드는 많은 사용자가 동시다발적으로 접근을 하지는 않을 것이라 문제는 없겠지만, 잠재적으로 문제를 가지고 있는 코드이다. private function create_whistle_code(){ $codeArr = $this->Front_whistle_model->get_whistle_code_list(); $newCode = ''; while(in_array($newCode = $this->common->get_rand_password(8), $codeArr)); return $newCode; } 1. $codeArr에는 현재 DB에 입력된 코드들이 배열에 담김 2. $this->common->get_rand_password(8)을 통.. 2022. 4. 20.
ie에서 파일 다운로드 한글 깨짐 ie가 정말 문제가 많은듯 하다. 이제 지원도 종료되고하니 더 이상 사용하지 않았으면 하는데, 아직 사용중인 고객들도 있으니 챙겨야하는 상황이다. //header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Content-Disposition: attachment; filename="'.iconv('UTF-8','CP949',$filename). '"');//ie 적용 파일 다운로드의 헤더에 파일명을 UTF-8에서 CP949로 처리해주면 간단히 해결된다. 이곳저곳 찾아본 결과 원인으로는 윈도우에서는 인코딩이 euc_kr의 확장이라서 그렇다는 말이 있었다. 그리고 특정 블로그에서는 ie여부를 체크하여 ie인 경우에만 CP949.. 2022. 4. 15.
PHP NULL 병합 연산자 '??' (javascript도 사용 가능) PHP 7버전대부터 나온 연산자로 NULL을 병합 해주는 연산자이다. 최근에 알게되어 찾아보다가 javascript에서도 해당 기능의 연산자가 있었다. 기본적인 기능은 '변수' ?? '대체 값' 이와 같은 방식으로 쓰이며, 해당 변수가 NULL이면 대체 값이 들어가는 형태이다. $test = NULL; $test = $test ?? 'empty'; //또는 $test ??= 'empty'; echo $test; 예를 들어 위와 같은 코드를 쓰게되면 $test에는 empty라는 글자가 들어가서 출력된다. javascript에서도 사용이 가능한데 var test = null; test = test ?? 'empty'; console.log(test); javascript에서는 null이거나 undefined.. 2022. 4. 14.
INSERT INTO 테이블 VALUES, INSERT INTO 테이블 SET MySQL에서 데이터를 insert를 시킬때 아래와 같은 두 가지 방법이 있다. (SQL 표준) 1. insert into 테이블 (a, b, c) values (1,2,3) (MySQL 확장) 2. insert into 테이블 set a=1, b=2, c=3 위의 두 방법은 동일한 결과를 보여주며 2번의 경우에는 MySQL에서만 사용가능하다. 지금까지 1번 방법만 썼는데 프로젝트 진행 중 2번이 나와서 잠시 당황 했었다. 그래서 찾아보니 오류를 찾거나 수정을 하기에 용이하기 때문에 2번의 방법을 쓰는 사람도 많다고 한다. 자꾸 하다보니 몰랐던게 나오는데 언제쯤 줄어들런지....모르겠다 ㅠㅠ 2022. 3. 18.
두 날짜 차이 계산 날짜 차이 계산 및 크기 비교를 하는 샘플이다. 갑자기 날짜 비교를 하여 validation 체크가 필요한데 바로 생각이 안 나서 여기 기록 한다. const date1 = new Date("2022-03-19"); const date2 = new Date("2022-03-18"); const diff = date1.getTime() - date2.getTime(); const diffDays = Math.abs(diff / (1000 * 3600 * 24)); console.log(diffDays);//날짜 차이 계산 console.log(date1 > date2);//날짜 크기 비교 바로 생각 안 나는것들 하나씩 채우다보면 한 가득일듯(....) 그래도 대충 뭐인지 검색 키워드는 알아서 다행이다. 2022. 3. 17.
sql mode 임시로 변경 일반적으로는 sql mode를 수정하기 위해서는 my.cnf파일을 수정하여 재부팅하면 되나, 급하게 또는 그렇게 할 수 없을 경우 서버가 재부팅 되기 전까지는 아래의 명령어가 그대로 적용될 수 있다. sql mode 확인 : select @@GLOBAL.sql_mode; sql mode 변경 : set GLOBAL sql_mode=''; 현재 mamp를 쓰는 상황에서 my.cnf파일을 찾지 못해 다음과 같이 임시로 적용해서 테스트 중에 있다. 애초에 쿼리 자체를 문제가 생기지 않게 변경하면 되지만.....(생략) 프로젝트는 언제나 시간이 문제일뿐.. 2022. 3. 2.
728x90