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的更多相关文章

  1. 踩到两只“bug”

    近期在修复ex和头儿的代码时,碰到两个特别点的bug,其实也不能称之为bug,非常简单的用法,稍不严谨点可能就出错了. 第一个是in_array,大家都知道功能是检查一个值是否在数组中,第三个参数传入 ...

  2. php添加pdo_mysql.so的扩展

    1. 首先进入你下载的php的安装包里找到pdo_mysql文件夹. /usr/local/php-/ext/pdo_mysql ps:有些教程说从http://pecl.php.net/这个网站上下 ...

  3. PHP 5.4.17 发布!

    PHP 5.4.17发布.2013-07-04 经过1个RC 上个版本是2013-06-07的5.4.16.修正了大约20个Bug以及几个安全漏洞.尽管5.5.0正式版已经发布.但5.4还未停止更新. ...

  4. mysql的TABLE_SCHEMA的sql和information_schema表, MySQL管理一些基础SQL语句, Changes in MySQL 5.7.2

    3.查看库表的最后mysql修改时间, 如果第一次新建的表可能还没有update_time,所以这里用了ifnull,当update_time为null时用create_time替代 select T ...

  5. ORA-00600: internal error code, arguments: [kkqtSetOp.1]

    新数据库从32升级到64位的11G 11 2 0 3 有条SQL 语句运行的时候会导致内部错误. 使用PL/SQL DEVELOPER 查询该语句的运行机会 按F5键 就激发了这个ORA600 单击此 ...

  6. 解决ThinkPHP3.2.3框架,PDO驱动类“抛出异常”不起作用的bug

    项目中引进了ThinkPHP3.2.3的模型层,发现当SQL语句出错时,系统抛出的异常不是我想要的效果,打开文件 ThinkPHP\Library\Think\Db\Driver.class.php, ...

  7. 解决ThinkPHP3.2.3框架,PDO驱动查询出来的字段名全是小写的bug

    找到文件:ThinkPHP\Library\Think\Db\Driver.class.php 找到代码: // PDO连接参数 protected $options = array( PDO::AT ...

  8. PDO 使用prepared statement 预处理LIMIT等非表字段参数

    由于一些驱动不支持原生的预处理语句,因此PDO可以完全模拟预处理.PDO的模拟预处理是默认打开的,即便MYSQL驱动本身支持预处理,在默认打开的状态下,PDO是不会用到MYSQL本身提供的预处理功能. ...

  9. 解决Bug:Size of a request header field exceeds server limit

    用了cms 发现这玩意真不好,老是有各种奇芭的问题跳出来 有时浏览网页时会出现 Bad Request Your browser sent a request that this server cou ...

随机推荐

  1. 解决CentOS 5.8在虚拟机环境下如何桥接上网

    1.虚拟机的网卡配置如下图所示: 2.在CentOS 5.8的命令行界面:输入如下指令 然后准备修改里面的网关地址和自己的IP地址 3.同时查看自己的IP地址和网关 4.在第二步里面修改,网关地址应该 ...

  2. 3月26日html(七)window document

    ---恢复内容开始--- 1.Window.document对象 一.找到元素: docunment.getElementById("id"):根据id找,最多找一个:     v ...

  3. jQuery实现的全选、反选和不选功能

    适用于网页多选后需要进行批量操作的场景(如批量删除等).如有问题希望大家可以指正.谢谢~~ HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮 ...

  4. CFLAGS/CPPFLAGS/CXXFLAGS in Makefile介绍

    先来看一张关于Makefile中的常见预定义变量. CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项.这两个变量实际上涵盖了编译和汇编两个步骤.大多数程序和库 ...

  5. Python 使用for代替in判断一个元素属于某个集合

    string1 = raw_input("输入in之前的字符:")string2 = raw_input("输入in之后的字符:")x = ''if len(s ...

  6. Android退出程序

    public class ExitApplication extends Application { private static ExitApplication instance ; List< ...

  7. Scala学习笔记--特质trait

    http://outofmemory.cn/scala/scala-trait-introduce-and-example 与Java相似之处 Scala类型系统的基础部分是与Java非常相像的.Sc ...

  8. 蚁群算法matlab实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下用matlab实现蚁群算法:   %蚂蚁算法test   %用产生的一个圆上的十个点来检验蚂蚁 ...

  9. IOS多线程 总结 -------------核心代码(GCD)

    //NSObject //在子线程中执行代码 // 参数1: 执行的方法 (最多有一个参数,没有返回值) //参数2: 传递给方法的参数 [self performSelectorInBackgrou ...

  10. Debian/Ubuntu 安装bcm43142无线网卡驱动

    Drivers for Broadcom BCM43142 wireless card of Ubuntu/Debian 64-bit Linux 1.Check the wireless card ...