MySQL和PHP-检查用户是否有权访问数据
我有一个交叉引用表owner\u meeting\u crossref,其中一列(owner\u id)表示所有者id,另一列(meeting\u id)表示所有者有权访问的会议idMySQL和PHP-检查用户是否有权访问数据,php,mysql,Php,Mysql,我有一个交叉引用表owner\u meeting\u crossref,其中一列(owner\u id)表示所有者id,另一列(meeting\u id)表示所有者有权访问的会议id 我的php脚本发送了一组会议,我知道当前用户ID是$current\u user\u ID。如何有效地检查用户(所有者)是否有权访问发送的会议ID?一个选项是从用户有权访问的列表中提取会议,然后计算差异 $meetingStr = implode(',', array_map('intval', $meetings
我的php脚本发送了一组会议,我知道当前用户ID是$current\u user\u ID。如何有效地检查用户(所有者)是否有权访问发送的会议ID?一个选项是从用户有权访问的列表中提取会议,然后计算差异
$meetingStr = implode(',', array_map('intval', $meetings));
$accessibleMeetingQuery = $db->prepare("
SELECT meeting_id
FROM owner_meeting_crossref
WHERE owner_id=:uid AND meeting_id IN ($meetingStr)
");
$accessibleMeetingQuery->execute(array(':uid' => $current_user_id));
$accessibleMeetings= $accessibleMeetingQuery->fetchAll(PDO::FETCH_COLUMN);
$inaccessibleMeetings = array_diff($meetings, $accessibleMeetings);
另一种方法是从SQL完成所有操作
SELECT m.id
FROM meetings AS m
LEFT JOIN owner_meeting_crossref AS om
ON m.id=om.meeting_id AND om.owner_id=:uid
WHERE m.id IN ($meetingStr)
AND om.meeting_id IS NULL
你是说第一个SQL中的$meetingStr吗?@Anonymous1:的确,我在这两个SQL中都是这么说的。