PHP动态SQL执行参数
因此,我正在为一个小型搜索表单动态构建一个PHP动态SQL执行参数,php,sql,arrays,Php,Sql,Arrays,因此,我正在为一个小型搜索表单动态构建一个SQL语句 我有一系列的IFs,检查用户在搜索时决定使用的过滤器 如果用户决定使用操作系统过滤器(他从中选择的下拉框),我想添加 $statement->execute(array( ':osFilter'=>$osFilter, )); 如果用户选择了第二个过滤器,我需要向该数组添加另一个元素,使其看起来像这样: $statement->execute(array( ':osFilte
SQL语句
我有一系列的IFs
,检查用户在搜索时决定使用的过滤器
如果用户决定使用操作系统过滤器(他从中选择的下拉框),我想添加
$statement->execute(array(
':osFilter'=>$osFilter,
));
如果用户选择了第二个过滤器,我需要向该数组添加另一个元素,使其看起来像这样:
$statement->execute(array(
':osFilter'=>$osFilter,
':versionFilter'=>$versionFilter,
));
$statement->execute($filtersArray);
我认为这样做的方法是在我遍历IFs时创建一个数组,然后将它传入execute(),但它不起作用
这就是我尝试的代码:
$filtersArray = array();
if (some condition) {
array_push($filtersArray, array(
':osFilter' => $osFilter,
));
}
我对其余的IF语句执行相同的操作,然后按如下方式传递构造的数组:
$statement->execute(array(
':osFilter'=>$osFilter,
':versionFilter'=>$versionFilter,
));
$statement->execute($filtersArray);
我收到以下错误:“数组到字符串的转换…”
有什么想法吗,在这里做事情的正确方式是什么 创建多维数组。只需使用$filtersArray[':osFilter']=$osFilter
我几分钟前找到了答案,但既然你先发布了,我就接受了。我犯了一个多么简单的错误,但我从未想过使用push()将不起作用。无论如何谢谢你!