채택완료

그누보드 mysql연결질문드립니다.

2020-02-17 (월) 17:32:04 3,303

안녕하세요 php 공부하고 있는 학생입니다.

생활코딩의 강의와 교재를 통해 php 공부를 하고 있는데 그누보드5에서 연결하는 mysql접속하는 코드가 달라서 어떻게 수정해야 할지 모르겠습니다.

제가 알고 있는 지식은, 

Copy
$sql = "select * from board where b_code = $code";

$result = mysqli_result($connect,$sql);

while($row=mysqli_fetch_array($result))

{

내용

}

이런 식으로 알고 있었습니다만 그누보드에선 쿼리문 작성하고 sql_query($sql)이런형식으로 되어있어서 많이 헷갈려 하고있습니다.

가령 g5_write_gallery 에서 추가설정한 컬럼 wr_1의 값을 class테이블에 있는 컬럼class_code의 값에 조인시킬려고 하는 과정을 제가 배웠던것을 이용하면

Copy
SELECT cs . *
FROM class AS cs
JOIN g5_write_gallery AS gg ON gg.wr_1 = cs.class_code

이렇게 하는걸로 알고있는데 그누보드5에서는 어떻게 써야하나요?

아직 완벽하게 그누보드5를 분석을 하지못해서 질문드려봅니다...

|

답변 1개

채택된 답변
+20 포인트
2020-02-17 (월) 18:02:59
Copy
$sql = "
  SELECT cs . *
    FROM class AS cs
           JOIN g5_write_gallery AS gg ON gg.wr_1 = cs.class_code
";

 

$result = sql_query($sql);

 

while($row = sql_fetch_array($result)) {
내용
}

그누보드에서 sql_query(), sql_fetch() 등은 사용자 함수입니다.

/lib/common.lib.php 의 파일에서 sql_query(), sql_fetch(), sql_fetch_array() 등의 함수 정의된 내용을 살피면

그 안에서는 mysqli_query(), mysqli_fetch_assoc() 등을 사용하는 것을 알 수 있습니다.

이를 보통 wrapper 함수라고 부르기도 합니다.

이는, 사용자 편의성의 이유도 있고, mysqli_~() 함수를 지원하지 않는 환경 등의 고려가 포함되어 있습니다.

그누보드의 사용자 정의 함수인 sql_query(), sql_fetch_array(), sql_fetch() 에 익숙해지면 상당히 편하다는 것을 느낄 수 있을 것입니다.

/bbs 디렉토리의 view.php, write_update.php 등의 소스를 참고하는 것도 괜찮을 듯 싶습니다.

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