PHP가 데이터베이스에 데이터를 삽입할 때 데이터가 왜곡되는 해결 방법: 먼저 데이터베이스의 인코딩을 utf8로 설정한 다음 데이터베이스에 삽입할 텍스트 인코딩 방법을 결정하고 마지막으로 스위치 문을 사용하여 데이터 삽입을 결정합니다. .
추천: "PHP Video Tutorial"
php에서 데이터베이스에 데이터를 삽입했는데 문자 깨짐 현상이 발생합니다
일반적으로 데이터베이스에 삽입된 데이터 깨짐은 인코딩 문제로 내용을 확인하실 수 있습니다. 데이터베이스에 삽입하기 전에 인코딩 방법이 데이터베이스에서 사용되는 인코딩 방법(예: utf-8)과 동일한 경우 삽입 작업이 수행됩니다.
먼저 데이터베이스에 삽입하려는 텍스트의 인코딩 방법을 결정합니다. utf-8이면 삽입하고, 그렇지 않으면 utf-8로 변환한 다음 삽입합니다.
$e=mb_detect_encoding($text, array('UTF-8', 'GBK', 'gb2312')); switch($e){ case 'UTF-8' : //如果是utf8编码就直接插入数据库 break; case 'GBK': //如果是gbk编码就转换为utf-8之后再插入数据库 iconv("GBK", "UTF-8",$data) ; break; case 'GB2312': //如果是GB2312编码就转换为utf-8之后再插入数据库 iconv("GB2312", "UTF-8",$data) ; break; }
인코딩은 다음과 같습니다. 프로그램의 인코딩은 데이터베이스에 사용된 인코딩과 일치해야 합니다. 그러나 데이터베이스에 삽입된 데이터에는 여전히 잘못된 문자가 있습니다. PHP를 사용하여 mysql에 연결할 때 인코딩이 설정되지 않았습니다. 물론 데이터베이스에 연결한 후 데이터베이스의 인코딩을 utf8로 설정한 다음 데이터베이스에 삽입하면 문자가 깨지지 않습니다.
코드는 다음과 같습니다:
$this->conn = mysqli_connect($db['default']['hostname'], $db['default']['username'], $db['default']['password'], $db['default']['dbname']) or die('Connect error!'); //连接到数据库 mysqli_set_charset($this->conn, 'utf8'); //此处不能用utf-8
위 내용은 PHP가 데이터베이스에 데이터를 삽입할 때 잘못된 문자가 발생합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!