프로그래밍/PHP
[CodeIgniter] Message: session_write_close(): Skipping numeric key 0 Error
채윤아빠
2019. 5. 10. 11:31
문제점 및 원인분석
다음과 같이 CodeIgniter로 모델에서 받은 데이터를 곧바로 세션에 할당하려는 와중에 위와 같은 오류 메시지를 받았습니다.
오류 상세 내용은 아래와 같습니다.
아래 참고자료에 따르면 세션의 색인 참조값을 문자열로 준 것이 아니라, 숫자로 주어서 발생한 것이 문제인데, $admin 배열의 의도를 쿼리 결과를 그대로 받은 것이라 "키"->"값" 쌍의 배열로 의도한 것이었습니다.
하지만, result_array() 함수의 반환값은 레코드들의 단순 배열이라 세션에 바로 할당할 경우, 첫 번째 키값이 문자열이 아닌 숫자 0이 되어 위 그림과 같은 오류가 발생하였습니다.
해결 방안
다음과 같이 첫 번째 행을 세션에 할당하도록 수정하면 문제가 깔끔하게 해결됩니다.
달라진 부분은 set_userdata() 호출 시, $admin를 바로 전달하는 것이 아니라, $admin0 과 같이 첫 번째 행을 전달하게 하면, 0이 키로 할당되는 문제가 해결됩니다.
참고자료
728x90
반응형