2010-05-13 4 views
0

에 삽입 할 때 재미 평방 문자는 내가 테이블에 가기 전에 내 요청 변수의 값을 확인MySQL은 - 테이블

INSERT INTO stories (title) VALUES('$_REQUEST[title]);

MySQL의 테이블에 값을 삽입하는 PHP 스크립트를 가지고있는 값에 추가 괜찮아. 내가 존 예를 들어, 테이블,

에 = 제목을 추가 할 때

는하지만이 같은 얻을 : title = "[][][][]john" 을 내가 값을 추출 할 때, 그 다음 줄 바꿈 존입니다.

내 열을 utf-8로 설정 했으므로 스웨덴 문자 집합도 시도했습니다.

참고 :

+1

계속 진행하기 전에이 기사를 읽는 것이 좋습니다. http://www.joelonsoftware.com/articles/에서 "절대적으로 모든 소프트웨어 개발자는 절대적으로 유니 코드와 문자 집합에 대해 알고 있어야합니다!" Unicode.html – ewall

답변

0

(UTF-8 환경에 대한 utf8을)입니다

당신은 어떤 배열 표기법 주위 {}이 필요합니다. BTW

$q="INSERT INTO stories(title) VALUES('{$_REQUEST['title']}')"; 

, 더 나은 것, 당신의 $의 _REQUEST를 검사 할 때하면의 문자 세트를 확인해야 새로운 변수의 소각 버전을 저장하고, real_escape_string()

+0

아니요, {}은 필요 없습니다. 하지만 따옴표와 이스케이프는 모두 필요합니다. –

+0

@Col. Shrapnel : 방금 제목 색인 주위에 따옴표를 넣는 것을 기억합니다. 중첩 된 작은 따옴표로'{}'이 (가) 필요합니다. 왜 내가 틀렸는 지 설명해 주시겠습니까? Tx. – dnagirl

+0

OP의 초기 구문 인''VALUES ('$ _ REQUEST [title]') ''(한 마디가 오타 였다고 가정)은 정확했습니다. http://php.net/types.string 그건 모호합니다. 그렇지만 올바른 구문입니다. –

0

SET NAMES <encoding> 쿼리는 데이터베이스에 연결할 때마다 실행해야하면 phpMyAdmin 명령 행에서 값을 삽입 할 때이 오류가 발생하지 않습니다.
매우 간단한 규칙입니다. "" 내에서 사용하는 경우 <encoding>는 MySQL의 방언으로 HTML 페이지 인코딩

0

로 탈출해야하는 바르 데이터베이스, 서버 및 클라이언트에 대한 정보를 제공합니다.

스웨덴어 문자 집합이 아니라 스웨덴어 데이터 정렬이라는 점에 유의하십시오.