2011-03-31 4 views
1

html의 텍스트 필드에 쉼표 (,)를 삽입하는 데 문제가 있습니다. 내가 mysql에 제출하면 데이터를 삭제한다. 어떻게하면이 작업을 할 수 있습니까?사용자가 텍스트 필드에 쉼표를 삽입하면 mysql에서 데이터가 삭제됩니다.

mysql_real_escape_string()을 시도했지만 여전히 작동하지 않습니다. 많은 데이터가 있고 str_replace도 사용하고 싶지 않습니다. 다른 대안이 있습니까?

+3

쉼표를 사용하여 SQL을 깨뜨릴 수있는 수준의 오류를 상상할 수도 없습니다. 문제를 조금 더 잘 설명해 주시겠습니까? 샘플 코드를 사용하는 것이 좋습니다. – Amadan

+0

@amadan, 나는 삭제가 혼란 스럽다는 것에 동의하지만, 그가 삽입하고 원시 필드가 쉼표로 돌아와서 쿼리가 다음 데이터 필드로 이동한다고 생각하게하는 경우, 깨지는 것은 의미가 있습니다. 분명히 이것은 모든 종류의 잘못된 사용법을 암시하지만 ... 어쨌든 ... 그건 질문이 아닙니다. 맞습니까? :) –

+0

@ Dr.Dredel, 나는 그것에 대해 생각해 보았고 SQL에서 숫자 값으로 처리되지 않은 문자열 입력을 사용하고 있습니다 (따옴표 제외). 데이터를 삭제하면 안됩니다. 탈출에 대한 귀하의 제안은 도움이되지 않습니다. :) – Amadan

답변

1

메시지를 서버로 보내기 전에 이스케이프 처리되므로 이스케이프 처리 된 다음 HTML 페이지에서 인쇄 할 때 이스케이프 처리됩니다.

이렇게 ... msgTosend = 이스케이프 (whateverText);

한 다음

그러나 msgToPrint = getFromDatabase (언 이스케이프 (myText를)), 댓글이 지적 하듯, 당신은 분명 모두 우글 우글 뭔가 잘못하고있는 인쇄 할 때.

문자열을 저장하는 경우 문자열을 저장하기 전에 따옴표로 묶어야합니다. 그렇게하면 쉼표로 아무 것도 망칠 수 없습니다. 문자열을 저장하지 않고 다른 데이터 유형을 저장하는 경우에는 저장하기 전에 서버에서 개별 변수로 분리해야합니다. 악의적 인 가능성이나 평범한 파손의 가능성은 기본적으로 당신이하는 것처럼 들립니다.

+0

네가 맞아. 왜냐하면 저는 제 가치에 대해 따옴표를 넣지 않았기 때문입니다. 내 생각에 정수라고 생각 했으므로 따옴표가 필요 없다고 생각했지만 숫자를 넣고 쉼표를 넣어야한다면 아빠를 망칠 것입니다. 따옴표가 내 문자열을 수정했습니다. 고마워! – hellomello

관련 문제