pdo无法处理limit占位符的解决办法

#1 9527

今天使用speedphp框架时,发现如下语句无法正确处理
$sql='SELECT * FROM t1 LIMIT :offset,:pagesize';
一开始以为是框架问题,但网上搜索后发现是pdo的bug,pdo无法正确处理limit参数中的占位符!
网上也给出了解决办法网上方法
我照着网上方法,把框架中的execute方法中大概300行处修改如下
 //解决pdo不能处理limit占位符bug
                        foreach($params as $k=>&$v){
                if(is_bool($v)){
                    $data_type=PDO::PARAM_BOOL;
                }elseif(is_int($v)){
                    $data_type=PDO::PARAM_INT;
                }elseif(is_null($v)){
                    $data_type=PDO::PARAM_NULL;
                }else{
                    $data_type=PDO::PARAM_STR;
                }
                $sth->bindParam($k, $v,$data_type);
            }
这样就可以了,希望老大也把框架中这个问题修复下

2016-06-10 15:55:42

#2 jake

mark,稍后会试试的,谢谢提出

2016-06-11 20:19:46

#3 jake

搞定,已更新到GITHUB,感谢!

2016-06-12 16:17:07

#4 9527

jake 发表于 2016-6-12 16:17
搞定,已更新到GITHUB,感谢!
嘿嘿,好的

2016-06-12 19:19:58