PDO位置和命名参数是否作为相同准备查询的一部分? [英] PDO positional and named parameters as part of the same prepared query?

查看:79
本文介绍了PDO位置和命名参数是否作为相同准备查询的一部分?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用PDO学习绳索.

I'm learning the ropes with PDO.

这是我的sql(WHERE中可以显示的参数数量是可变的).

Here is my sql (the number of parameters that can appear in the WHERE is variable).

    SELECT
        ID, title

    FROM
        table

    WHERE
        something = ?

    ORDER BY 
        :sort :dir 

    LIMIT 
        :start, :results

这是我的代码:

        $query = $conn->prepare($sql);

        if ($parameters) {

            $i = 0;
            foreach ($parameters AS $parameter) {

                $i++;
                $query->bindParam($i, $parameter);

            }

        }

        $query->bindParam(':start', $pagination['start'], PDO::PARAM_INT);
        $query->bindParam(':results', $pagination['results'], PDO::PARAM_INT);
        $query->bindParam(':sort', $pagination['sort']);
        $query->bindParam(':dir', $pagination['dir']);

        $query->execute();

...这是它生成的异常:

... and here is the exception that it generates:

 Invalid parameter number: mixed named and positional parameters

是否不可能在同一查询中组合位置参数和命名参数?还是我错过了什么?

Is it impossible to combine positional and named parameters in the same query? Or am I missing something?

谢谢!

推荐答案

是的,这是不可能的.

PDO.prepare

您不能在同一SQL语句中同时使用命名参数标记和问号参数标记.选择一种或另一种参数样式.

You cannot use both named and question mark parameter markers within the same SQL statement; pick one or the other parameter style.

这篇关于PDO位置和命名参数是否作为相同准备查询的一部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆