쿼리문 처리시 관련문의드립니다. 채택완료
안녕하세요 질문하나 가지고왔습니다. ㅎ;
$conn = new mysqli(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD, G5_MYSQL_DB);
// 연결 확인
if ($conn->connect_error) {
die("데이터베이스 연결 실패: " . $conn->connect_error);
}
$sql = "SELECT
SUM(CASE WHEN g5_member.mb_sex = 'F' THEN 1 ELSE 0 END) AS 여댓글의수,
SUM(CASE WHEN g5_member.mb_sex = 'M' THEN 1 ELSE 0 END) AS 남댓글의수,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 10 AND 19 THEN 1 ELSE 0 END) AS age_10,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 20 AND 29 THEN 1 ELSE 0 END) AS age_20,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 30 AND 39 THEN 1 ELSE 0 END) AS age_30,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 40 AND 49 THEN 1 ELSE 0 END) AS age_40,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 50 AND 59 THEN 1 ELSE 0 END) AS age_50,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) BETWEEN 60 AND 69 THEN 1 ELSE 0 END) AS age_60,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, STR_TO_DATE(g5_member.mb_birth, '%Y-%m-%d'), NOW()) >= 70 THEN 1 ELSE 0 END) AS age_70
FROM g5_write_notice
JOIN g5_member ON g5_write_notice.mb_id = g5_member.mb_id
WHERE wr_is_comment = 1";
$result = $conn->query($sql);
네 소스에 문제는 없구요 궁금한게 있어서 질문드립니다.
저는 매번 이런식으로 서버측을 처리를 하고있는데 쿼리문 처리할때 꼭 위처럼 디비접속을 하지않고 처리 하는 법도 있는듯하여 올려봅니다. 혹시나 있으시면 조언좀 부탁드려요
답변 4개
스킨 파일이면 굳이 conn을 안 하시고 쿼리를 실행하셔도 되지 않나요?
$result = $conn->query($sql);
->
$result = sql_query($sql);
이렇게 하셔도 될꺼 같습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
스킨 파일에서 왼만하면 작업을 안하시는것이 좋아보입니다. 디비 인젝션에 취약합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
저는 매번 이런식으로 서버측을 처리를 하고있는데 쿼리문 처리할때 꼭 위처럼 디비접속을 하지않고 처리 하는 법도 있는듯하여 올려봅니다. 혹시나 있으시면 조언좀 부탁드려요
==
없습니다. 다만 common.php에서 하고 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
상단에 여기에 추가하면 ..다른 문제 는 생기지 않은지요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
난 지금까지 콘접속하고 리솔트 처리하고 이래것든요 ---;;;