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とokですが、私は入力$name、それはerror.e.gを与える場合、私入力ABCは、それは次のようになります場合。ユーザーテーブルに列nameがあります。MySQLエラー不明列 'ABC'

例外(データベース例外)メッセージ と 'Yiiの\ DB \例外'「SQLSTATE [42S22]:カラム見つかりません:1054不明な列 '句 'SQLが実行されている' の' ABCだった:SELECT * book_seatから内はbook_seat.seat_id = seat.seat_id INNERがbook_seat.user_id = users.user_id WHERE 1 = 1、users.nameはABC」

+2

文字列であるため、変数nameを一重引用符で囲みます。 –

+1

ユーザーのテーブルの '.AND \' users \ 'name \' = '$ name''のようなバックティックを使用します。 – Riad

+0

は、名前? –

答えて

0

この

を試してみてください= ONユーザーのJOIN ON座席を登録しよう
AND `users`.`name`='$name' 
関連する問題