所以我正在为一个小型搜索表单动态构建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);
我收到此错误:“数组转换为字符串...”
任何想法,这里做事的正确方法是什么?
答案 0 :(得分:2)
您创建多维数组。只需使用$filtersArray[':osFilter'] = $osFilter;
。