我有以下代码:
$sql = "SELECT * FROM image WHERE id >= :from";
$bind = array(":from" => $from);
if(isset($to)) {
$sql .= " AND id <= :to";
$bind[":to"] = $to;
}
$request = $database->prepare($sql);
$request->execute($bind);
print_r($request->fetchAll());
这感觉很不洁净,但它有效。我想知道的是,如果有一个更简洁的方法来获得一个可选的SQL和一个可选的绑定变量而不触发异常(当我尝试将两个绑定放在最后并留下一个NULL时发生)。
是否有其他方法可以编写此代码?
答案 0 :(得分:1)
如果你真的想要一个更清洁的代码,
$qb = DB::table('image')->where('id', '>=', $from);
if(isset($to)) {
$qb->andWhere('id', '<=', $to)
}
$data = $qb->get()
您必须关注查询构建器
对于原始PDO,您的代码是您可以获得的最佳代码。