mysql pdo 쿼리 질문합니다.
본문
현재 이건 mysql로 되어있는 상태인데
pdo 로 바꾸려고 하는데 하단의 코드중에 이해 안되는 부분 질문합니다!
(불필요한 코드 생략 했습니다)
$que = "update member set todayLoginState = '1' // 코드생략
if ($row_dep['dep'] == 0){
$que .= " ,loginDateCount = loginDateCount + 1 ";
}
여기서 $que .= 이게 이해가 안갑니다. 선배님들
.= 요거는 무슨 역할을 해주는거죠?
!-->
답변 3
$str = "테스트입니다.";
$str .= "지금";
echo $str;
-------------------------
결과 : 테스트입니다. 지금
이렇게 문자열을 연결할 수 있습니다.
pdo랑은 전혀 상관이 없지만 php에서 사용하는 연결자예요.
$a = "aa";
$b = "bb";
echo $a.$b;
이렇게 하면 aabb로 찍힙니다.
$row_dep['dep'] 이 변수의 값이 0이 아닐 경우 echo $que; 하면
update member set todayLoginState = '1'
이 쿼리만 실행이 됩니다.
만약 0이라면
update member set todayLoginState = '1', loginDateCount = loginDateCount + 1
이렇게 쿼리가 실행되구요.
PHP 에서 . 의 역할은
변수와 변수 혹은
문자열과 문자열을 이어주는 연결자 입니다.
https://dasima.xyz/php-string-operator/
그리고 = 은 대입연산자 입니다.
$변수 = $변수 . $변수2;
이렇게 사용하는게 일반적인데
$변수 = $변수 와 같이 중복될경우
$변수 = $변수 o <-- 이곳에 오는 연산자를
o= 와 같은 형식으로 구성이 가능한 문법을 가집니다.
따라서
.= 의 의미는
O = O . X
를
O .= X
와 같이 만들수 있습니다.
위의 예에서 O 와 X 는 각 변수 혹은 문자열 입니다.
질문하신 대로 다시 연결하면
$str = " update table set x = 1 ";
$str .= " where 조건...";
와 같이 한경우
문자열로 SQL구문을 만들다가 가독성의 이유 혹은 조건에 따른 변수 대입의 이유 로
분리시켜서 나타낼때 주로 사용합니다.