• PDO LIMIT bug


    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); 
    } 
  • 相关阅读:
    redis-单线程为什么快
    redis-数据结构
    http-状态码
    事件绑定完整版2016/4/21
    焦点事件2016、4、21
    ++
    Bom2016/4/21
    添加以及删除className
    getByClassName2016/4/21
    动态添加
  • 原文地址:https://www.cnblogs.com/gabin/p/3934249.html
Copyright © 2020-2023  润新知