sql문 where 절에 사용자함수를 사용할 수 있나요?
본문
$result = sql_fetch("select ~~~~ from ~~~~ where mb_id = '$mb_id' and ".get_kor_date('makeup_day', $wal, $gab_ita)."='$ddate' ");
makeup_day 필드안에 있는 값을 function 함수를 적용해서 그 값이 $ddate값이랑 같으면 출력....
이렇게 넣을 수 있나요?
돌려보니 에러나네요..ㅠㅠㅠ
!-->답변 4
쉬운방법이 저거 쿼리문을 따로 변수에 넣어서 echo 확인해보세요 그리고 그대로 mysql 툴에서 쿼리 날려서 확인해보세요
php에서 sql를 돌리실건지 아니면 dbms 에서 바로 sql만으로 하실건지 따라 다릅니다.
sql만으로 하실거면 기본 함수만 동작합니다.
PHP 함수가 있고, DB 함수가 있습니다.
질문의 경우 Query문에서 PHP 사용자 정의 함수의 결과값을 이용하는데
그 결과값에 문제가 있습니다.
get_kor_date() 함수의 결과값이 날짜 문자열로 추정되는데
그러면 Query문이 결국 아래처럼 정해지겠죠?
" select ~~~~ from ~~~~ where mb_id = '$mb_id아이디' and 함수반환날짜='$ddate날짜' "
이 중 함수반환날짜='$ddate날짜'를 보면,
필드값 비교도 아니고, 문자열 비교도 아니니 당연히 에러가 나겠죠?
'함수반환날짜'='$ddate날짜' 비교도 이상하고요.
* 오류가 뜨면 해당 오류도 남겨주면 좋습니다.
'날짜'='날짜' 비교도 이상하죠?
DB 함수를 이용해 필드에 저장된 값을 가공해 지정한 날짜와 비교하는 것이라면 몰라도요.
이하 생략합니다.
$ddate = get_kor_date($ddate, $wql, $gab_ita);
$sql = "
select ~~~~
from ~~~~
where mb_id = '{$mb_id}'
and makeup_day = '{$ddate}'
";
$result = sql_fetch($sql);
답변을 작성하시기 전에 로그인 해주세요.