특정 테이블 왜안되는지아시는분

특정 테이블 왜안되는지아시는분

QA

특정 테이블 왜안되는지아시는분

본문

SELECT * FROM g5_write_dr WHERE v_channel like '%NETFLIX%' UNION SELECT * FROM g5_write_m WHERE v_channel like '%NETFLIX%' ORDER BY `wr_datetime` DESC limit 0, 24

 

 

mysql에서는 검색되는데 for문하니안되는데왜그런가요 ?

이 질문에 댓글 쓰기 :

답변 3

그누보드에서는 sql문에서 'union' 의 사용을 허락하지 않고 있어서 그렇습니다.

 

/lib/common.lib.php

// union의 사용을 허락하지 않습니다.

$sql = preg_replace("#^select.*from.*[\s\(]+union[\s\)]+.*#i ", "select 1", $sql);

1) /lib/common.lib.php 의 function sql_query() { ~ } 복사
2) /extend/user.config.php 에 붙여넣기
3) 함수명 sql_query_u() {~} 으로 변경
4) sql_query_u() 함수의 내용중에서 다음부분 변경
$sql = preg_replace("#^select.*from.*[\s\(]+union[\s\)]+.*#i ", "select 1", $sql);
->
$sql = preg_replace("#^select.*from.*#i ", "select 1", $sql);
5) sql_query() 호출 부분 -> sql_query_union() 으로 변경

UNION 사용하실때 가급적 * 대신 필드명 넣어서 사용하시는게 정신건강에 좋습니다~

요즘 보통 mariaDB 쓰실거라 생각하고 아래 처럼해보세요


$sql="SELECT wr_subject, wr_content, wr_datetime FROM g5_write_dr WHERE v_channel like '%NETFLIX%' UNION SELECT wr_subject, wr_content, wr_datetime FROM g5_write_m WHERE v_channel like '%NETFLIX%' ORDER BY `wr_datetime` DESC limit 0, 24";
$result=mysqli_query($g5['connect_db'], $sql);
$row=sql_fetch_array($result);

 

답변을 작성하시기 전에 로그인 해주세요.
전체 81
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT