prepare($sql);$sth->bindValue(1,+'" />

PDO LIMIT bug

系统 1607 0

PDO存在一个LIMIT BUG(mysql)

需要指定数据类型,而且limit后面跟的2个参数必须是数值类型,不然的话获取不到数据

例1:

      
        $dsn
      
       = "mysql:host=127.0.0.1;port=3306;dbname=dab"
      
        ; 


      
      
        $dbh
      
       = 
      
        new
      
       PDO(
      
        $dsn
      
      , 'root', ''
      
        );


      
      
        $sql
      
       = "select * from dab_ntos_admin limit ?,?"
      
        ;


      
      
        $sth
      
       = 
      
        $dbh
      
      ->prepare(
      
        $sql
      
      
        );


      
      
        $sth
      
       ->bindValue(1, +'0', PDO::PARAM_INT); 
      
        //
      
      
         第三个参数指定了参数类型,第二个参数用+号做了类型转换(转成数值类型)
      
      
        $sth
      
       ->bindValue(2, +'1', PDO::PARAM_INT); 
      
        //
      
      
         第三个参数指定了参数类型,第二个参数用+号做了类型转换(转成数值类型)
      
      
        $sth
      
      ->
      
         execute(); 


      
      
        foreach
      
      (
      
        $sth
      
      
        as
      
      
        $row
      
      
        ) { 

    
      
      
        echo
      
      
        var_dump
      
      (
      
        $row
      
      
        ); 

} 
      
    

例2:

      
        $dsn
      
       = "mysql:host=127.0.0.1;port=3306;dbname=dab"
      
        ; 


      
      
        $dbh
      
       = 
      
        new
      
       PDO(
      
        $dsn
      
      , 'root', ''
      
        );


      
      
        $sql
      
       = "select * from dab_ntos_admin limit :start,:limit"
      
        ;


      
      
        $sth
      
       = 
      
        $dbh
      
      ->prepare(
      
        $sql
      
      
        );


      
      
        $sth
      
       ->bindValue(':start', +'0', PDO::PARAM_INT); 
      
        //
      
      
         第三个参数指定了参数类型,第二个参数用+号做了类型转换(转成数值类型)
      
      
        $sth
      
       ->bindValue(':limit', +'1', PDO::PARAM_INT); 
      
        //
      
      
         第三个参数指定了参数类型,第二个参数用+号做了类型转换(转成数值类型)
      
      
        $sth
      
      ->
      
         execute(); 


      
      
        foreach
      
      (
      
        $sth
      
      
        as
      
      
        $row
      
      
        ) { 

    
      
      
        echo
      
      
        var_dump
      
      (
      
        $row
      
      
        ); 

} 
      
    

 

PDO LIMIT bug


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论