在 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 子句,因此返回了整个(据推测是很大的)数据集。
我正在尝试动态构建查询,但我在效率方面遇到了困难。
假设我有这个表格:
<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 子句,因此返回了整个(据推测是很大的)数据集。