在 PHP 中构建查询

Building queries in PHP

我正在尝试动态构建查询,但我在效率方面遇到了困难。

假设我有这个表格:

<form method="post">
    <input type="checkbox" name="item[]">
    <input type="checkbox" name="item[]">
    <input type="checkbox" name="item[]">

    <input type="checkbox" name="item_2[]">
    <input type="checkbox" name="item_2[]">
    <input type="checkbox" name="item_2[]">

    <input type="submit">
</form>

PHP:

function add_item_to_query($query)
{

    $item_array = [];
    if(isset($_POST["item"])){
        $query .= " AND ";
        foreach ($_POST["item"] as $item){
            $item_array[] = "item LIKE '%$item%'";
        }
        $query .= implode(' OR ',$item_array);
    }

    return $query;
}

我正在使用这段代码动态创建查询,但是,当用户没有select任何复选框时,在构建相同的过程中发生错误(内存限制)...我怎么能解决这个问题?

该代码中没有任何内容会在未选择项目的情况下触发内存错误,因此假设您的意思是执行查询时发生内存错误是否正确?

如果是这种情况,很可能是因为基本查询没有 WHERE 子句,因此返回了整个(据推测是很大的)数据集。