有时取决于在查看我的页面时使用哪种用户类型,我需要添加一个JOIN,甚至只是限制结果。有没有更简洁的方法去实现它?我应该为每种类型的请求提供单独的语句吗?什么更“适当”?在PDO中使用动态预处理语句
这里是我的代码最终看起来像:
// Prepare statement
$stmt = $this->db->prepare('
SELECT *
FROM Documents
LEFT JOIN Notes ON ID = D_ID
'.($user_id ? "INNER JOIN Users ON UID = ID AND UID = :userid" : '')."
". ($limit ? 'LIMIT :offset, :limit' : '')
);
// Bind optional paramaters
if ($user_id) $stmt->bindParam(':userid', $user_id, DB::PARAM_INT);
if ($limit)
{
$stmt->bindParam(':offset', $limit[0], DB::PARAM_INT);
$stmt->bindParam(':limit', $limit[1], DB::PARAM_INT);
}
Dyin的建议,这听起来与dqhendricks所说的类似。你能提供一个例子吗? – 2012-04-06 14:53:40
我改进了我的答案。你应该为这些查询制作单独的类。 – Dyin 2012-04-07 08:24:39