2011-12-01 2 views

답변

56

더블 아포스트로피 :

'he doesn''t work for me' 
+3

프로그램 백엔드에서이 작업을 수행하는 경우 매개 변수가있는 쿼리를 사용하십시오. 실제로 여기에 SQL Injection 공격이 발생하고 있습니다. – Andrew

3

는이

INSERT INTO exampleTbl VALUES('he doesn''t work for me') 
당신은 ASP.NET을 통해 기록을 추가하는 경우
7
INSERT INTO exampleTbl VALUES('he doesn''t work for me') 

, 당신이 값을 전달하는 SqlParameter에 객체를 사용하려고하면 이렇게 사용자가 입력하는 아포스트로피에 대해 걱정할 필요가 없습니다.

-3

다음과 같이 표시하려면 백 슬래시 '\'를 사용할 수 있습니다. 텍스트에 작은 따옴표를 넣으십시오.

INSERT INTO exampleTbl VALUES ('He doesn (\'t) ');

+0

\ ' – Hoque

+1

주위에 필요한 대괄호가 백 슬래시가 SQL Server에서이 문제를 해결하는 올바른 방법이 아닙니까? –

-2

예, SQL Server는 SQL 주입 공격으로 인해 테이블 ​​필드에 작은 따옴표를 삽입 할 수 없습니다. 그래서 우리는 저장하는 동안 단일 appostrophe를 double로 대체해야합니다.

은 (그가 나를 위해 작동하지 않음)이어야합니다 => 단일 아포스트로피의 내부

+4

"SQL 주입 공격으로 인해 SQL Server에서 테이블 필드에 작은 따옴표를 삽입 할 수 없습니다"라는 것은 올바른 이해가 아닙니다. –

0
$value = "he doesn't work for me"; 

$new_value = str_replace("'", "''", "$value"); // it looks like " ' " , " ' ' " 

INSERT INTO exampleTbl (`column`) VALUES('$new_value') 
+0

이것은 PHP가 아니라 SQL에 관한 것입니다. – Bono

-1
insert into table1 values("sunil''s book",123,99382932938); 

사용 이중 아포스트로피 (그가 나를 위해 일을 doesn''t가), 그것은

를 작동합니다
관련 문제