PHP 데이터베이스 쿼리에서 잘못된 문자에 대한 해결 방법: 먼저 MySQL 명령줄 클라이언트에서 데이터베이스를 생성한 다음 mysql이 동시에 여러 인코딩 데이터베이스를 지원하도록 데이터베이스의 문자 집합을 지정하고 마지막으로 생성된 데이터베이스를 작동합니다.
잘못된 코드에 대한 솔루션
권장: "PHP Tutorial"
잘못된 코드 문제를 해결하려면 먼저 데이터베이스에서 어떤 인코딩을 사용하는지 파악해야 합니다. 지정하지 않으면 기본값은 latin1입니다.
우리가 가장 많이 사용하는 세 가지 문자 세트는 gb2312, gbk 및 utf8이어야 합니다.
그럼 데이터베이스의 문자셋은 어떻게 지정하나요? 다음은 gbk
[MySQL 명령줄 클라이언트에서 데이터베이스 생성]
mysql> CREATE TABLE `mysqlcode` ( -> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -> `content` VARCHAR( 255 ) NOT NULL -> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci; Query OK, 0 rows affected, 1 warning (0.03 sec) mysql> desc mysqlcode; +---------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-----------------------+------+-----+---------+----------------+ | id | tinyint(255) unsigned | NO | PRI | | auto_increment | | content | varchar(255) | NO | | | | +---------+-----------------------+------+-----+---------+----------------+ 2 rows in set (0.02 sec)
의 예이기도 합니다. 다음 TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
는 지정된 데이터베이스의 문자 집합인 COLLATE(collation), mysql이 동시에 여러 문자를 지원할 수 있도록 코딩된 데이터베이스.
물론 다음 명령을 통해 데이터베이스의 문자 집합을 수정할 수도 있습니다
alter database da_name default character set 'charset'.
클라이언트는 이를 gbk 형식으로 보내고 다음 구성을 사용할 수 있습니다.
SET character_set_client='gbk' SET character_set_connection='gbk' SET character_set_results='gbk'
이 구성은 SET NAMES 'gbk'와 동일합니다. .
이제 방금 생성한 데이터베이스를 조작합니다
mysql> use test; Database changed mysql> insert into mysqlcode values(null,'php爱好者'); ERROR 1406 (22001): Data too long for column 'content' at row 1
문자 집합을 gbk로 지정하지 않았으며 삽입 중 오류가 발생했습니다
mysql> set names 'gbk'; Query OK, 0 rows affected (0.02 sec)
지정된 문자 집합은 gbk입니다
mysql> insert into mysqlcode values(null,'php爱好者'); Query OK, 1 row affected (0.00 sec)
삽입에 성공했습니다
mysql> select * from mysqlcode; +----+-----------+ | id | content | +----+-----------+ | 1 | php爱好着 | +----+-----------+ 1 row in set (0.00 sec)
읽기 작업도 발생합니다 문자 세트 gbk가 지정되지 않은 경우 다음과 같이 문자가 왜곡됩니다.
mysql> select * from mysqlcode; +----+---------+ | id | content | +----+---------+ | 1 | php??? | +----+---------+ 1 row in set (0.00 sec)
[phpmyadmin에서 데이터베이스 생성 및 문자 세트 지정]
필요에 따라 테이블 유형을 선택하고 여기에서 MyISAM(전체 텍스트 검색 지원)을 선택합니다.
정렬을 위해 gbk 문자 집합인 gbk_chinese_ci를 선택하세요.
gbk_bin 중국어 간체, 바이너리입니다. gbk_chinese_ci 중국어 간체, 대소문자를 구분하지 않습니다.
방금 만든 데이터베이스에 데이터베이스를 삽입하세요
다시 검색해 보면 코드가 깨져 있는 것을 발견합니다
왜일까요? 데이터베이스가 gbk 문자셋인데, 우리가 운영할 때 gbk로 지정하지 않았기 때문입니다. 데이터베이스 홈 페이지로 돌아가면 mysql 연결 교정을 위한 기본 latin1_bin을 볼 수 있습니다. gbk_chinese_ci
로 변경하고 데이터를 삽입합니다. 보세요, 이것은 정상입니다
[PHP에서 데이터베이스를 읽을 때 잘못된 코드에 대한 솔루션]
아직 데이터베이스 mysqlcode를 예로 사용합니다
<?php $conn = mysql_connect("localhost","root","89973645"); mysql_query("set names 'gbk'");//这就是指定数据库字符集,一般放在连接数据库后面就系了 mysql_select_db("test"); $sql = "select * from mysqlcode"; $result = mysql_query($sql,$conn); ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>mysql 字符编码</title> </head> <body> <table width="300" height="32" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="71" align="center">id</td> <td width="229" align="center">内容</td> </tr> <?php while($row = mysql_fetch_assoc($result)){ echo " <tr> <td align=/"center/">".$row['id']."</td> <td>".$row['content']."</td> </tr>"; }?> </table> </body> </html> <?php mysql_free_result($result);?>
mysql_query("set names 'gbk'");를 주석 처리하면 확실히 그럴 것입니다. 깨져요
그 문장을 추가하면 다시 정상이 됩니다
한 문장으로
데이터베이스에 어떤 인코딩을 사용하시나요? 데이터베이스를 운영하기 전에 이름을 '자신의 인코딩'으로 설정하세요.
위 내용은 PHP 데이터베이스 쿼리에서 잘못된 문자 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 산 및 기본 데이터베이스 모델을 비교하여 특성과 적절한 사용 사례를 자세히 설명합니다. 산은 금융 및 전자 상거래 애플리케이션에 적합한 데이터 무결성 및 일관성을 우선시하는 반면 Base는 가용성 및

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

기사는 내장 함수 사용, 화이트리스트 접근 방식 및 서버 측 유효성 검사와 같은 기술에 중점을 둔 보안을 향상시키기 위해 PHP 입력 유효성 검증에 대한 모범 사례를 논의합니다.

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

이 기사에서는 PHP에서 암호를 보호하기 위해 PHP에서 Password_hash 및 Password_Verify 사용의 이점에 대해 설명합니다. 주요 주장은 이러한 기능이 자동 소금 생성, 강한 해싱 알고리즘 및 Secur를 통해 암호 보호를 향상 시킨다는 것입니다.

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

이 기사는 PHP의 XSS 공격을 방지하기위한 전략, 입력 소독, 출력 인코딩 및 보안 향상 라이브러리 및 프레임 워크 사용에 중점을 둔 전략에 대해 설명합니다.

이 기사는 각각의 사용시기에 중점을 둔 PHP의 인터페이스 및 추상 클래스 사용에 대해 설명합니다. 인터페이스는 관련없는 클래스 및 다중 상속에 적합한 구현없이 계약을 정의합니다. 초록 클래스는 일반적인 기능을 제공합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
