본문 바로가기
MySql

MySQL SQL 쿼리에서 중괄호 {}는 무엇을합니까?

by 베이스 공부 2020. 9. 21.
반응형

예를 들어, 다음 쿼리를 확인하십시오.

$query = "SELECT * FROM users WHERE user='{$_POST['username']}';  

용도는 무엇입니까?

문자열 컨텍스트에서 나는 그것이 해결하는 문제를 이해합니다.
I can do stuff like $animal = "cat" echo "{$ animal} s." // 고양이 출력

그러나 위에 게시 한 SQL에서는 이해하지 못합니다. 다음도 똑같이 좋지 않을까요?

$query = "SELECT * FROM users WHERE user='$_POST['username']' AND password='$_POST['password']'";  

그렇다면 {및} 사용은 어디에서 편리할까요? SQL 컨텍스트에서 예를 들어 보시겠습니까?

 

해결 방법

 


중괄호는 복잡한 변수 표현식을위한 것입니다. SQL 인터페이스가 아닌 PHP로 해석됩니다.

$query = "SELECT * FROM users WHERE user='$_POST['username']' AND password='$_POST['password']'";  

위의 경우 구문 분석 오류가 발생합니다. 중괄호없이 다음과 같이 작성해야합니다.

$query = "SELECT * FROM users WHERE user='$_POST[username]' AND password='$_POST[password]'";  

핵심 따옴표가 없다는 점에 유의하십시오. 이것은 단순한 배열 액세스와 단순한 객체 속성 표현식에서만 작동합니다. 더 복잡한 경우에는 중괄호를 사용하십시오.



그러나 더 복잡한 곱슬 문자열 구문에 대한 예를 제공하기 위해 다음과 같이합니다.

$query = "SELECT * FROM users WHERE user={$_POST->id->sql['username']}";

(일부 인라인 필터링 및 인용을 수행합니다. 예를 들어 기본 PHP 설정에서는 작동하지 않습니다.)

 

참조 페이지 https://stackoverflow.com/questions/9104684

 

 

반응형

댓글