MySQL和PHP-检查用户是否有权访问数据

MySQL和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

我有一个交叉引用表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));
$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中都是这么说的。