반응형
나는 보았다 :
해결 방법
문자열 이스케이프는 해당 문자열에 사용 된 따옴표 (및 기타 문자)의 모호성을 줄이는 것을 의미합니다. 예를 들어 문자열을 정의 할 때 일반적으로 큰 따옴표 또는 작은 따옴표로 묶습니다.
"Hello World."
하지만 내 문자열에 큰 따옴표가 있으면 어떻게 될까요?
"Hello "World.""
이제 모호함이 있습니다. 인터프리터는 내 문자열이 어디에서 끝나는 지 모릅니다. 큰 따옴표를 유지하려면 몇 가지 옵션이 있습니다. 내 문자열 주위에 작은 따옴표를 사용할 수 있습니다.
'Hello "World."'
또는 내 따옴표를 벗어날 수 있습니다.
"Hello \"World.\""
슬래시가 앞에 오는 모든 따옴표는 이스케이프 되며 문자열 값의 일부로 이해됩니다.
쿼리와 관련하여 MySQL에는 약간의 혼동없이 쿼리에 사용할 수없는 특정 키워드가 있습니다. 열 이름이 "Select"인 값 테이블이 있고이를 선택한다고 가정합니다.
SELECT select FROM myTable
이제 쿼리에 약간의 모호성을 도입했습니다. 쿼리 내에서 백틱을 사용하여 모호성을 줄일 수 있습니다.
SELECT `select` FROM myTable
이것은 필드 이름을 선택할 때 잘못된 판단을 사용하여 도입 한 혼란을 제거합니다.
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
add_slashes
, addcslashes
, quotemeta code> 등과 같은 문자열을 이스케이프하기위한 다른 방법이 있지만 목표가 안전한 쿼리를 실행합니다. 대부분의 개발자는 PostgreSQL의 컨텍스트에서
mysql_real_escape_string
또는 pg_escape_string
을 선호합니다.
참조 페이지 https://stackoverflow.com/questions/10646142
반응형
'MySql' 카테고리의 다른 글
MySQL 내 PDO가 작동하지 않는 이유는 무엇입니까? (0) | 2021.02.09 |
---|---|
MySQL mysql 타임 스탬프를 mktime으로 변환 (0) | 2021.02.09 |
MySQL mysql 데이터베이스에 배열 저장 (0) | 2021.02.09 |
MySQL 필드가 0보다 작고 0보다 큰 경우 MySQL 선택 횟수 필요 (0) | 2021.02.09 |
MySQL 데이터베이스를 메모리에서 완전히 실행하려면 어떻게해야합니까? (0) | 2021.02.09 |
댓글