>  기사  >  백엔드 개발  >  thinkphp가 'set names utf8mb4' 실행 시 오류를 보고합니다.

thinkphp가 'set names utf8mb4' 실행 시 오류를 보고합니다.

WBOY
WBOY원래의
2016-10-11 14:23:192830검색

실행 환경: sae + thinkphp
DB_CHARSET은 utf8입니다. (utf8mb4로 직접 설정하면 오류가 발생합니다. 이유는 모르겠습니다...)
이모지 표현을 지원하려면 테스트 코드는 다음과 같습니다
공개 함수 테스트(){

<code>    $model = M('');
    $model -> query('set names utf8mb4');
}</code>

오류 메시지: [SQL 문]: 이름 설정 utf8mb4.
안내 부탁드립니다. 감사합니다!

답글 내용:

실행 환경: sae + thinkphp
DB_CHARSET은 utf8입니다. (utf8mb4로 직접 설정하면 오류가 발생합니다. 이유는 모르겠습니다...)
이모지 표현을 지원하려면 테스트 코드는 다음과 같습니다
공개 함수 테스트(){

<code>    $model = M('');
    $model -> query('set names utf8mb4');
}</code>

오류 메시지: [SQL 문]: 이름 설정 utf8mb4.
안내 부탁드립니다. 감사합니다!

<code>select version();  看下数据库版本,5.5以上才支持utf8mb4
</code>

Mysql::utf8mb4

1. mysql 버전을 확인하세요.
mysql 5.5.3 이후 버전의 경우 utf8mb4 문자셋이 추가되므로, 먼저 mysql 서버를 업그레이드해야 합니다.
2. MySQL utf8mb4 문자 집합
/etc/my.cnf 수정

[클라이언트]
기본 문자 집합 = utf8mb4

[mysql]
기본 문자 집합 = utf8mb4

[mysqld]
문자 세트-클라이언트-핸드셰이크 = FALSE
문자 세트-서버 = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

MySQL 서버를 다시 시작하고 문자 집합을 확인하세요

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.