PHP 문법 질문 드립니다!
본문
$sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
latest.lib.php 에 있는 한줄인데요!
select * from 테이블명 where 조건
이렇게만 사용했었는데 만약 위와같은 한줄의 경우라면
그누보드 SQL 내에서 어떤 테이블을 선택한다고 보면 될까요??
{$g5['board_table']}
그리고 latest.lib.php 파일 내에서 {$bo_table} 는 어떻게 변수가 설정되어있을까요??
추가로 테이블명과 조건절에서 사용하는 {} 중괄호의 의미가 뭘까요?
궁금합니다 ㅠㅠ 쌩초보를 위해 부탁드릴게요 ㅠ
답변 4
1.
$g5['board_table'] 변수를 사용하면 테이블 접두어가 변하더라도 자동으로 인식해서,
별도로 코드를 수정할 수고를 덜 수 있습니다.
g5_board 테이블 지칭하며, 모든 테이블 목록 정보를 담고 있는 테이블입니다.
특정 테이블을 선택하려면, where 조건절 이용해 제한해줘야 겠죠.
2.
중괄호를 사용하는 이유는
문자열 내에서 배열변수를 사용할 땐 PHP가 인식하기 쉽도록 묶어줘야 합니다.
옛날엔 문법이 안 엄격했는데, php7 버전이 되면서 안 묶은 경우 에러 뿜습니다.
문자열 내에서 변수 사용할 땐, 되도록 묶어주는 습관을 기르는 게 좋습니다.
{$g5['board_table']}
은 g5_board 를 지정하는것 입니다.
$bo_table 의 변수는 지정된것이 아닌 넘어오는 table 이름입니다.
$sql = " select * from g5_board where bo_table = 'free' ";
$sql = " select * from g5_board where bo_table = 'gallery' ";
$sql = " select * from g5_board where bo_table = 'notice' "
위의 3가지를 보시면 이해하기 쉬울거에요~~ 채택해주셔서
바로 답글 달았어요~~
{$g5['board_table']}
이렇게 괄호를 감싸는 이유는
https://www.php.net/manual/en/language.variables.variable.php
위 주소 참고해 보세요~~
echo $sql;
이렇게 찍어보세요 이해하기 쉬우실 거에요