db 의 인코딩과 php 에서 사용할 db 인코딩을 설정해야 합니다.
먼저 php에 하드코딩한 데이터가 들어가는지 보고
웹페이지에서 입력한 데이터가 정상인지 확인하세요.
제가 database character set을 utf8로 설정해줘서 그런 것 같습니다.
utf8mb4로 바꾸니 제대로 들어갑니다.
답변 감사합니다. ^^
인덱스 또는 제약조건이 걸린 VARCHAR 컬럼을 사용할 때 주의하셔야 합니다.
MySQL의 인덱스 크기는 최대 767byte인데,
utf8(한 글자당 3byte) : 767 / 3 = 255 글자
utf8mb4(한 글자당 4type) : 767 / 4 = 191 글자
이 됩니다. 따라서, utf8mb4 문자셋으로 정의된 MySQL DB에서는 VARCHAR 컬럼을 191 글자보다 작은 크기로 정의해야 런타임에 문제가 발생하지 않습니다.
해당 테이블의 character set 을 utf8mb4로 바꾸고 collation도 utf8mb4_unicode_ci 로 바꿨습니다.
그리고 emoji 데이터를 insert하게 되면 ???? 로 들어가게 되는데
해결할 수 있는 방법이 있을까요?