$bNo = $_GET['no'];
$tables = $_GET['table'];
$sql = 'select * from comment_free where b_no=' . $bNo;
처음에는 comment_free 테이블에 존재하는 데이터 열 중 b_no컬럼이 $bNo인것만 조회하기를 원했기때문에 위와 같이 작성했다.
하지만, 한가지 조건이 더 생기게 되어 WHERE조건 중 AND를 사용하게 되었다.
그런데, 분명 값을 잘 갖고 나오는데 result가 아무것도 나오지 않아 리스트가 빈 화면이 계속 나왔다.
계속 안 되어서 mysql을 터미널로 접속을 해 SQL문을 직접 입력해보기로 하였다.
먼저, 기존 코드를 작성해보니 조건에 따라 잘 조회되었다.
다음으로 안되는 코드를 갖다 복붙해보니...에러가 발생했다. 정말 안 되네? 왜 안되지? 하다가
PHPMYADMIN을 오랜만에 열어 구조를 살펴보다가 알게되었다.
$bNo의 경우 데이터 타입이 INT이기 때문에 그냥 and b_no=' . $bNo;와 같이 호출을 하면 되지만,
$tables의 경우 데이터 타입이 TEXT이기 때문에 쌍따옴표(")를 붙여주어야한다.
따라서,
$sql = 'select * from comment_free where b_name=' . $tables . ' and b_no=' . $bNo;
이렇게 하면 안되고,
$sql = 'select * from comment_free where b_name="' . $tables . '" and b_no=' . $bNo;
이렇게 ' ' 안에 문자열이 끝나고 "를 붙여주어 이 $tables이 텍스트임을 알려주어야한다.
'서버 > PHP' 카테고리의 다른 글
PHP에서 자바스크립트 함수 호출하는 방법 (0) | 2017.07.31 |
---|---|
날짜 표시 형식 변경하기 date() 함수 (0) | 2017.04.04 |
문자열과 변수 합치기(결합하기) (0) | 2017.01.19 |
date()함수를 사용했는데 현재 시간과 맞지 않을때. (0) | 2017.01.15 |
PHP파일에서 MySQL 연결하기 (0) | 2017.01.14 |