我想创建一个动态查询以显示所有发票,如果用户具有主持人等级,并且当用户是简单成员时,则仅显示其发票
public function getAllBill($user_rank, $user_id){
$sql = 'SELECT * FROM invoice_user
INNER JOIN users on users.user_id = invoice_user.user_id';
$sql_clause = 'WHERE user_id = :user_id)';
$sql_group = 'GROUP BY invoice_number ORDER BY invoicedate DESC';
if ($user_rank === 'member') {
$final_sql = $sql.' '.$sql_clause.' '.$sql_group;
}
else if ($user_rank === 'moderator'){
$final_sql = $sql.' '.$sql_group;
}
$request = $this->bdd->prepare($final_sql);
$request->execute(array(
':user_id' => $user_id
));
return $request->fetchAll();
}
我想知道是否有一种更优雅的方法来做到这一点,但尤其要知道一切是否安全,因为他们知道排名和ID来自用户会话({{1 },$_SESSION ['rank']
)
不将参数表置于某种状态会带来问题吗?
PS:我使用MySQL