codeigniter中的PDO,无法绑定参数


PDO in codeigniter, unable to bind params

我遇到以下问题:

环境PHP,带PDO的代码点火器框架。

我的代码

public function index(){
        $sql = "SELECT ........ LIMIT ?,?";
        $q = $this->db->prepare($sql);
        $limit = 0;
        $offset = 10;
        $q->execute(array($limit, $offset));           
        $r = $q->fetch();
        var_dump($r);
    }

问题:sql查询中没有问题,因为如果我在LIMIT子句中硬编码任何整数(例如0、10);查询返回所需的结果只有在绑定params时才会出现此问题

显示错误在上面的代码中转储$r返回bool(false)

现在,以下代码成功运行,

public function index(){
        $sql = "SELECT ........ LIMIT 0,10";
        $q = $this->db->prepare($sql);           
        $q->execute();           
        $r = $q->fetch();
        var_dump($r);
    }

绑定时,前一个代码可能有什么问题?我这样做是错误的吗?还是有可能因为codeigniter默认不支持PDO而导致它逐渐蔓延?

根据建议,我给出了自己的答案。

不能通过子句将变量绑定到LIMIT或ORDER

解决方案:

将其作为sql查询中的变量传递(为了更安全,可能会使用intval进行清理)