绑定PDO查询中的可选部分

时间:2016-04-28 12:18:20

标签: php sql sqlite pdo

我有以下代码:

$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时发生)。

是否有其他方法可以编写此代码?

1 个答案:

答案 0 :(得分:1)

如果你真的想要一个更清洁的代码,

$qb = DB::table('image')->where('id', '>=', $from);
if(isset($to)) {
    $qb->andWhere('id', '<=', $to)
}
$data = $qb->get()

您必须关注查询构建器

对于原始PDO,您的代码是您可以获得的最佳代码。