테스트 사이트 - 개발 중인 베타 버전입니다

sql문 where 절에 사용자함수를 사용할 수 있나요? 채택완료

</p>

<p>$result = sql_fetch("select ~~~~ from ~~~~ where mb_id = '$mb_id' and ".get_kor_date('makeup_day', $wal, $gab_ita)."='$ddate' ");</p>

<p>

makeup_day 필드안에 있는 값을 function 함수를 적용해서 그 값이 $ddate값이랑 같으면 출력....

 

이렇게 넣을 수 있나요? 

돌려보니 에러나네요..ㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

</p>

<p>$ddate = get_kor_date($ddate, $wql, $gab_ita);</p>

<p>$sql = "

  select ~~~~ 

    from ~~~~ 

   where mb_id = '{$mb_id}'

     and makeup_day = '{$ddate}'

";</p>

<p>$result = sql_fetch($sql);</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

PHP 함수가 있고, DB 함수가 있습니다.

 

질문의 경우 Query문에서 PHP 사용자 정의 함수의 결과값을 이용하는데

그 결과값에 문제가 있습니다.

 

get_kor_date() 함수의 결과값이 날짜 문자열로 추정되는데

그러면 Query문이 결국 아래처럼 정해지겠죠?

" select ~~~~ from ~~~~ where mb_id = '$mb_id아이디' and 함수반환날짜='$ddate날짜' "

 

이 중 함수반환날짜='$ddate날짜'를 보면,

필드값 비교도 아니고, 문자열 비교도 아니니 당연히 에러가 나겠죠?

'함수반환날짜'='$ddate날짜' 비교도 이상하고요.

* 오류가 뜨면 해당 오류도 남겨주면 좋습니다.

 

'날짜'='날짜' 비교도 이상하죠?

DB 함수를 이용해 필드에 저장된 값을 가공해 지정한 날짜와 비교하는 것이라면 몰라도요.

이하 생략합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

php에서 sql를 돌리실건지 아니면 dbms 에서 바로 sql만으로 하실건지 따라 다릅니다. 

sql만으로 하실거면 기본 함수만 동작합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

쉬운방법이 저거 쿼리문을 따로 변수에 넣어서 echo 확인해보세요 그리고 그대로 mysql 툴에서 쿼리 날려서 확인해보세요 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록