1. mysql 데이터베이스에 한자가 포함된 필드 값을 삽입하는 PHP 코드를 작성했습니다. phpMyadmin에서 보면 문자가 깨져 보이고, mysql 콘솔에서 보면 각 필드의 정렬 규칙이 깨져 있습니다. phpmyadmin에 직접 삽입하면 정상으로 표시되고, mysql 콘솔에 직접 삽입해도 정상으로 표시되지만 php를 통해 삽입하면 정상이 아닙니다. header("Content-Type: text/html;charset=utf-8") ) PHP 코드에서 ;
<code><?php header("Content-Type:text/html;charset=utf-8"); if($con=mysqli_connect('localhost','root','')){ echo '连接成功'; } else{ echo '连接失败'; } if(mysqli_select_db($con,"test")){ echo '选择数据库成功'; } else{ echo '选择数据库失败'; } $str="insert into students(name,age)values('周杰伦','23')"; if(mysqli_query($con,$str)){ echo '插入成功'; } else{ echo '插入失败'; } mysqli_close($con);//关闭数据库 ?></code>
3. 문제가 어디에 있는지 알아내도록 도와주시겠어요?
1. mysql 데이터베이스에 한자가 포함된 필드 값을 삽입하는 PHP 코드를 작성했습니다. phpMyadmin에서 보면 문자가 깨져 보이고, mysql 콘솔에서 보면 각 필드의 정렬 규칙이 깨져 있습니다. phpmyadmin에 직접 삽입하면 정상으로 표시되고, mysql 콘솔에 직접 삽입해도 정상으로 표시되지만 php를 통해 삽입하면 정상이 아닙니다. header("Content-Type: text/html;charset=utf-8") ) PHP 코드에서 ;
<code><?php header("Content-Type:text/html;charset=utf-8"); if($con=mysqli_connect('localhost','root','')){ echo '连接成功'; } else{ echo '连接失败'; } if(mysqli_select_db($con,"test")){ echo '选择数据库成功'; } else{ echo '选择数据库失败'; } $str="insert into students(name,age)values('周杰伦','23')"; if(mysqli_query($con,$str)){ echo '插入成功'; } else{ echo '插入失败'; } mysqli_close($con);//关闭数据库 ?></code>
3. 문제가 어디에 있는지 알아내도록 도와주시겠어요?
데이터베이스 테이블에 일반 중국어 문자가 있는지 확인한 다음 데이터를 삽입할 때 문제를 해결해 보세요. 유니코드 형식:
데이터베이스, 테이블, 필드 설정이 모두 utf-8
데이터베이스 접속 시 문자셋이 utf-8
프로그램 파일이 utf-8
mysql 설치 프로그램의 구성 파일이 utf-8
문제의 핵심을 찾았습니다. 아래 두 가지 답변을 모두 시도했지만 문제는 mysql.ini 구성에 default-character-set = utf8이라는 문장이 없다는 것이었습니다. wampserver를 설치한 후 사용했습니다. 소프트웨어 자체에서 설치한 Mysql은 mysql.ini에 해당 문장이 없으며, 이 문장을 추가하면 반드시 내 그림에 표시된 위치에 추가해야 합니다.
아래와 같이 ini 파일을 수정한 후 'character_set_%;'와 같은 표시 변수를 사용하여 문자 인코딩을 확인하세요
mysql 인코딩을 설정하고 sql "set names utf8"을 실행해야 합니다
문자셋을 설정해 보세요
<code>mysqli_set_charset($con, "utf8");</code>