【问题标题】:PHP dynamic SQL execute parametersPHP动态SQL执行参数
【发布时间】: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);

我收到此错误:“数组到字符串的转换...”

任何想法,在这里做事的正确方法是什么?

【问题讨论】:

    标签: php sql arrays


    【解决方案1】:

    您创建多维数组。只需使用$filtersArray[':osFilter'] = $osFilter;。

    【讨论】:

    • 我在几分钟前找到了答案,但既然你先发布了,我会接受的。我犯了一个多么简单的错误,但我从没想过使用 push() 不起作用。还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2013-03-20
    • 2015-05-22
    • 1970-01-01
    相关资源
    最近更新 更多