2016-07-31 2 views
0
$sql="SELECT * FROM book_seat INNER JOIN seat ON book_seat.seat_id=seat.seat_id 
           INNER JOIN users ON book_seat.user_id=users.user_id 
           WHERE 1=1"; 
      if($type) 
      { 
       $sql.= " AND seat.type=$type";  
      } 

      if($name) 
      { 
       $sql.= " AND users.name=$name";  
      } 

      if($flightdate) 
      { 
       $sql.= " AND book_seat.date_booked=$flightdate"; 
      } 

      if($seat) 
      { 
       $sql.=" AND seat.seat=$seat"; 
      } 

모든 $type, $flightdate, $seat에 괜찮습니다하지만 난 입력 $name, 그것은 error.e.g를 제공하면 내가 입력 ABC, 그것은 다음을 제공합니다. 사용자 테이블에 name 열이 있습니다.MySQL의 오류 알 수없는 열 'ABC'

예외 (데이터베이스 예외) 메시지 'YII \ DB \ 예외' 'SQLSTATE [42S22]없는 컬럼 : 1,054 알 열의 : SELECT 절'는 SQL 실행 중 어디 에서 'ABC이었다 * INNER가 book_seat.seat_id = ON seat.seat_id 유저 가입 book_seat 1 = 1 AND users.name = ABC '

+2

작은 따옴표 안에 이름 변수를 넣으십시오. –

+1

'..AND \'users \'name \'= '$ name''와 같은 역 따옴표를 사용하십시오. – Riad

+0

사용자 테이블에' 이름'? –

답변

0

사용해 WHERE INNER는 book_seat.user_id = users.user_id 사용자를 가입 FROM
AND `users`.`name`='$name'