[SQL] SQL 쿼리 내에서 단일 인용 탈출
SQLSQL 쿼리 내에서 단일 인용 탈출
나는 이름과 주소를라는 두 개의 열이있는 테이블 회사를 보유하고 있습니다. 다음 코드를 실행하여, 새로운 데이터가 테이블에 삽입 :
my_name = "my company name"
my_address = "ABC"
query = "INSERT INTO companies (name,address) VALUES ('#{my_name}','#{my_address}');"
ActiveRecord::Base.connection.execute(query);
나는 "요한의 회사"에서 "내 회사 이름"에서 my_name 값을 변경하면, 나는 구문 오류가 발생합니다. 쿼리가되기 때문입니다 :
"INSERT INTO companies (name,address) VALUES ('John's company','ABC');"
과 '요한의 회사는'그 안에 작은 따옴표가있다.
이미 쿼리 문자열 정의에 큰 따옴표를 사용하고 있음을 감안할 때, 내가 어떻게 내 값에 작은 따옴표에 대한이 오류를 제거받을 수 있나요?
해결법
-
==============================
1.당신이이 방법을 수행해야하는 경우 다음 연결 개체의 인용 방법을 사용하십시오
당신이이 방법을 수행해야하는 경우 다음 연결 개체의 인용 방법을 사용하십시오
이 같은 그래서 :
my_name = ActiveRecord::Base.connection.quote("John O'Neil") my_address = ActiveRecord::Base.connection.quote("R'lyeh") query = "INSERT INTO companies (name,address) VALUES (#{my_name}, #{my_address})" ActiveRecord::Base.connection.execute(query);
결코 지금까지 자신의 인용을 처리하려고합니다. 그리고는 SQL 문자열 리터럴을 인용 부호 큰 따옴표를 사용하기위한 하나의 어떤 따옴표 그의를하지 않는다; 큰 따옴표는 대부분의 데이터베이스에서 (예 : 테이블 및 열 이름 등) 식별자를 인용 부호하지만 MySQL은 그것을 위해 역 따옴표를 사용합니다.
from https://stackoverflow.com/questions/8179760/escaping-a-single-quotation-within-sql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 시간 사이 데이터베이스에 동시 이벤트를 찾기 (0) | 2020.06.28 |
---|---|
[SQL] PHP에서 "관련 항목"을 찾는 방법 (0) | 2020.06.28 |
[SQL] 오라클 SQL에 대한 파서 (0) | 2020.06.27 |
[SQL] 바이트 배열에서 파일 확장자를 추출하는 방법 (0) | 2020.06.27 |
[SQL] SQL 벌크 기록 업데이트 (0) | 2020.06.27 |