codeigniter中的PDO,无法绑定params

时间:2012-01-24 13:26:39

标签: php codeigniter pdo

我遇到以下问题:

环境 PHP,带有PDO的codeigniter框架。

我的代码

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);

    }

问题:如果我在LIMIT子句中对任何整数(例如0,10)进行硬编码,则sql查询没有问题;查询返回所需的结果。 仅在绑定参数时才会出现此问题。

显示错误在上面的代码中转储$ 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而有可能它正在爬行?

1 个答案:

答案 0 :(得分:1)

据我所知,我正在回答。

您无法将变量绑定到LIMIT或ORDER by子句

解决方案:

将它作为sql查询中的变量传递(并且可能使用 intval 进行清理,以便更安全。)

相关问题