#과 $의 차이점

王林
풀어 주다: 2019-10-25 17:57:12
원래의
22644명이 탐색했습니다.

#과 $의 차이점

가장 직접적인 측면에서 이들 간의 차이점은 다음과 같습니다. #은 데이터에 큰따옴표를 추가하는 것과 동일하고, $는 데이터를 직접 표시하는 것과 같습니다.

1. # 들어오는 매개변수를 문자열로 처리합니다. 즉, 사전 컴파일됩니다

select * from user where name = #{name}
로그인 후 복사

예를 들어 csdn을 전달하면

select * from user where name = 'csdn'
로그인 후 복사

2가 됩니다.

select * from user where name=${name}
로그인 후 복사

예를 들어 csdn을 착용하면

select * from user where name=csdn
로그인 후 복사

3이 전달됩니다. #의 장점은 SQL 삽입을 크게 방지할 수 있다는 것이지만 $는 그렇지 않습니다.

예: 사용자가 로그인 작업을 수행하고 백그라운드 SQL 확인 스타일은 다음과 같습니다.

select * from user where username=#{name} and password = #{pwd}
로그인 후 복사

프런트 데스크에서 전송된 사용자 이름이 "wang"이고 비밀번호가 "1 또는 1=1"인 경우 #을 사용합니다. sql이 Injection이 나타나는 것을 방지하기 위해 $방식으로 변경하면 sql문이

select * from user where username=wang and password = 1 or 1=1
로그인 후 복사

가 됩니다. 이 경우 sql인젝션이 형성됩니다.

4. MyBatis 정렬 시 동적 매개변수로 정렬을 사용할 경우 # 대신 $를 사용하는 것에 주의해야 합니다.

추천 튜토리얼: mysql 튜토리얼

위 내용은 #과 $의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿