【发布时间】:2017-04-22 14:03:25
【问题描述】:
所以我正在为一个小型搜索表单动态构建SQL statement。
我有一系列IFs,我在其中检查用户在搜索时决定使用哪些过滤器。
如果用户决定使用操作系统过滤器(他从中选择的下拉框),我想添加
$statement->execute(array(
':osFilter'=>$osFilter,
));
如果用户选择了第二个过滤器,我需要将另一个元素添加到此array,使其看起来像这样:
$statement->execute(array(
':osFilter'=>$osFilter,
':versionFilter'=>$versionFilter,
));
我认为这样做的方法是在通过 IF 时创建一个数组,然后将其传递给 execute() 但它不起作用。
这是我试过的代码:
$filtersArray = array();
if (some condition) {
array_push($filtersArray, array(
':osFilter' => $osFilter,
));
}
我对其余的 IF 语句做同样的事情,然后像这样传递构造的数组:
$statement->execute($filtersArray);
我收到此错误:“数组到字符串的转换...”
任何想法,在这里做事的正确方法是什么?
【问题讨论】: