programing tip

MySql에서 아포스트로피 ( ')를 피하는 방법?

itbloger 2020. 7. 2. 08:00
반응형

MySql에서 아포스트로피 ( ')를 피하는 방법?


MySQL의 문서 가되어야한다고 말한다 \'. 그러나 scite와 mysql은 모두 ''작동합니다. 나는 그것을 보았습니다. 어떻게해야합니까?


당신이 인용 한 MySQL 문서는 실제로 당신이 언급 한 것보다 조금 더 말합니다. 또한 말합니다

" '"로 인용 된 문자열 내의 " '"는 " "로 쓸 수 있습니다 ''.

(또한 MySQL 5.0 버전의 표 8.1. 특수 문자 이스케이프 시퀀스 에 연결했으며 현재 버전은 5.6이지만 현재 표 8.1. 특수 문자 이스케이프 시퀀스 는 매우 유사합니다.)

나는 매개 변수 backslash_quote (string) 대한 Postgres 메모 가 유익 하다고 생각합니다 .

따옴표를 \'문자열 리터럴로 표시 할 수 있는지 여부를 제어합니다 . 따옴표를 나타내는 기본 SQL 표준 방법은 따옴표를 두 배로 늘리는 것 ( '')이지만 PostgreSQL은 역사적으로도 받아 들였습니다 \'. 그러나를 사용 \'하면 보안 위험이 발생합니다.

즉, 이중 인용 부호 문자를 사용하는 것이 작은 따옴표를 이스케이프 처리하기 위해 백 슬래시를 사용하는 것보다 전체적이고 장기적으로 더 나은 선택입니다.

이제 언어 선택, SQL 데이터베이스 및 비표준 쿼크 및 쿼리 프레임 워크 선택을 방정식에 추가하려는 경우 다른 선택으로 끝날 수 있습니다. 제약 조건에 대한 많은 정보를 제공하지 않습니다.


표준 SQL은 큰 따옴표를 사용합니다. MySQL은이를 합리적으로 준수해야합니다.

'He said, "Don''t!"'

user2087510의 의미는 다음과 같습니다.

name = 'something'
name = name.replace("'", "\\'")

나는 또한 이것을 성공으로 사용했다.


그냥 ''대신 '두 번 쓰세요'


예를 들면 다음과 같습니다.

SELECT * FROM pubs WHERE name LIKE "%John's%"

작은 따옴표를 묶으려면 큰 따옴표를 사용하십시오.

작은 따옴표를 사용한다고 주장하고 문자를 이스케이프 해야하는 경우 :

SELECT * FROM pubs WHERE name LIKE '%John\'s%'

내가 알고있는 세 가지 방법이 있습니다. 첫 번째는 가장 아름답 지 않고 두 번째는 대부분의 프로그래밍 언어에서 일반적인 방법입니다.

  1. 다른 작은 따옴표를 사용하십시오. 'I mustn''t sin!'
  2. \작은 따옴표 앞에 이스케이프 문자 사용하십시오 '.'I mustn\'t sin!'
  3. 작은 따옴표 대신 큰 따옴표를 사용하여 문자열을 묶습니다. "I mustn't sin!"

아포스트로피가있는 데이터 포인트가 있으면 아포스트로피 앞에 하나의 아포스트로피를 추가 할 수 있다고 생각합니다.

예. '이 곳은 요한의 장소입니다'

여기서 MYSQL은 'This is John' 's place'라는 두 문장을 가정합니다.

당신은 '이곳은 요한의 장소'입니다. 나는 그것이 그렇게 작동해야한다고 생각합니다.


PHP에서는 SQL 문에 사용하기 위해 문자열에서 특수 문자를 이스케이프하는 mysqli_real_escape_string ()을 사용하는 것이 좋습니다.

참조 https://www.php.net/manual/en/mysqli.real-escape-string.php를


문자열을 교체

value = value.replace(/'/g, "\\'");

여기서 value는 데이터베이스에 저장할 문자열입니다.

더욱이,

이것에 대한 NPM 패키지, 당신은 그것을 볼 수 있습니다

https://www.npmjs.com/package/mysql-apostrophe


이것은 효과가 있었다 :

name = 'John O'Brien'
name = name.replace("\'", "\\\'")

참고 URL : https://stackoverflow.com/questions/9596652/how-to-escape-apostrophe-in-mysql

반응형