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 \分贝\异常' 与消息 “SQLSTATE [42S22]:柱未找到:1054未知列 '' 在 '其中正在执行条款' 的SQL ABC是:SELECT * FROM book_seat INNER JOIN座椅ON book_seat.seat_id = seat.seat_id INNER JOIN用户ON book_seat.user_id = users.user_id WHERE 1 = 1 AND users.name = ABC”
将名称变量放在单引号中,因为它是一个字符串 –
在用户表中有''AND \'''''''''''''''''''' – Riad
' name'? –