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

문자열이 길어지면 쿼리가 안먹히는데 채택완료

블랙캣77 4년 전 조회 2,331

sql_query 함수를 보면

 // `information_schema` DB로의 접근을 허락하지 않습니다.

$sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);

해서 두줄이 있는데 쿼리문을 반목으로 해서 추가를 하는데 길이가 길어지면 저기서 걸려서 $sql 값이 빈값이 되는데 왜 위의 정규식에서 길이가 길어지면 $sql 값이 빈값이 될까요?

반복 횟수를 줄여서 쿼리가 짧아지면 정상적으로 실행됩니다.

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

답변 1개

채택된 답변
+20 포인트

답변에 대한 댓글 2개

블랙캣77
4년 전
해당이랑 상관이 없을거 같은데 위에 정규식 처리 부분이 빼면 쿼리문 정상적으로 처리됩니다.
관심을 가져주셔서 감사합니다.
그냥 아예 저 정규식 때문에 값이 사라져서요.
엑스엠엘
4년 전
혹시 union을 쓰시나요?
긴 sql 내용을 올려 보세요.

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

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

로그인