다음 SQL 명령을 시도하는 동안 SQL 오류가 발생했습니다.'(아포스트로피)가있는 텍스트를 SQL 테이블에 삽입하는 방법
INSERT INTO exampleTbl VALUES('he doesn't work for me')
여기에는 아포스트로피가 포함되지 않습니다.
'(아포스트로피)가있는 텍스트를 SQL 테이블에 삽입하는 방법은 무엇입니까?
다음 SQL 명령을 시도하는 동안 SQL 오류가 발생했습니다.'(아포스트로피)가있는 텍스트를 SQL 테이블에 삽입하는 방법
INSERT INTO exampleTbl VALUES('he doesn't work for me')
여기에는 아포스트로피가 포함되지 않습니다.
'(아포스트로피)가있는 텍스트를 SQL 테이블에 삽입하는 방법은 무엇입니까?
더블 아포스트로피 :
'he doesn''t work for me'
는이
INSERT INTO exampleTbl VALUES('he doesn''t work for me')
당신은 ASP.NET을 통해 기록을 추가하는 경우
INSERT INTO exampleTbl VALUES('he doesn''t work for me')
, 당신이 값을 전달하는 SqlParameter에 객체를 사용하려고하면 이렇게 사용자가 입력하는 아포스트로피에 대해 걱정할 필요가 없습니다.
다음과 같이 표시하려면 백 슬래시 '\'를 사용할 수 있습니다. 텍스트에 작은 따옴표를 넣으십시오.
INSERT INTO exampleTbl VALUES ('He doesn (\'t) ');
\ ' – Hoque
주위에 필요한 대괄호가 백 슬래시가 SQL Server에서이 문제를 해결하는 올바른 방법이 아닙니까? –
예, SQL Server는 SQL 주입 공격으로 인해 테이블 필드에 작은 따옴표를 삽입 할 수 없습니다. 그래서 우리는 저장하는 동안 단일 appostrophe를 double로 대체해야합니다.
은 (그가 나를 위해 작동하지 않음)이어야합니다 => 단일 아포스트로피의 내부"SQL 주입 공격으로 인해 SQL Server에서 테이블 필드에 작은 따옴표를 삽입 할 수 없습니다"라는 것은 올바른 이해가 아닙니다. –
$value = "he doesn't work for me";
$new_value = str_replace("'", "''", "$value"); // it looks like " ' " , " ' ' "
INSERT INTO exampleTbl (`column`) VALUES('$new_value')
이것은 PHP가 아니라 SQL에 관한 것입니다. – Bono
insert into table1 values("sunil''s book",123,99382932938);
사용 이중 아포스트로피 (그가 나를 위해 일을 doesn''t가), 그것은
를 작동합니다
프로그램 백엔드에서이 작업을 수행하는 경우 매개 변수가있는 쿼리를 사용하십시오. 실제로 여기에 SQL Injection 공격이 발생하고 있습니다. – Andrew