0

我打算在我的项目中创建一个搜索功能,但发现从另一个外键表中选择列记录的一些问题让我很沮丧。

这是搜索前的正常示例输出: 在此处输入图像描述

这是经过搜索后发布的表: 在此处输入图像描述

我的表的mysql查询名为“member_booking” 在此处输入图像描述

如果我搜索基于事件表的标题,它将显示一串不受外键限制的标题记录。

mysql 查询可能如下所示:

select *
from member_booking,event,member
where member_booking.E_ID=event.E_ID and member_booking.MEM_ID=member.MEM_ID and  member_booking.REF_CODES like '%$keyword%' OR event.E_TITLE like '%$keyword%' OR member.MEM_USERNAME like '%$keyword%' OR member.MEM_EMAIL like '%$keyword%' 

谢谢。

4

1 回答 1

1

如果将 $keyword 注入那些“like”运算符,请小心 SQL 注入攻击。使用“内连接”或左/右连接来连接表格。

例如。

select 
-- your comma separated list of fields here, for example
-- e.event_title , e.amount , e.event_date , e.MEM_ID, 
from 
member_booking mb inner join event e on mb.E_ID = e.E_ID 
inner join member m on mb.MEM_ID = m.MEM_ID
where  mb.REF_CODES like '%$keyword%' 
OR e.E_TITLE like '%$keyword%' 
OR m.MEM_USERNAME like '%$keyword%' 
OR m.MEM_EMAIL like '%$keyword%' ** 
于 2013-09-06T17:16:43.713 回答