PDO版本问题 Invalid parameter number: no parameters were bound

yipeiwu_com7年前PHP代码库

今天在处理bug的时候发现某一个很奇怪的问题,在执行某类操作的时候会报:Invalid parameter number: no parameters were bound,但是该问题在本地或是测试机上测试都没有重现,猜想是否和版本有关,于是就google了下,发现http://forum.typecho.org/topic.php?id=1501 该文的二楼说道,该问题是版本的bug,在php5.2.9以下的pdo中会出现。于是就是找了团队中另外一位同时的机子(5.2.6)做测试,果然重现该问题,他的服务器上5.2.17上测试,该问题没有出现。

在调试的时候,发现出现该类操作的时候有如下业务报以上错误:

用PDO往表nw_log(表字段一些列uid之类的,及content字段)中插入一条数据,其中content字段的内容为<a href='http://a.xxx/?tid=1'>test</a>,并且在入库之前表字段的内容会调用PDO->quote方法进行转义。在php5.2.6机子上则报如上错误,但是在5.2.17机子上表现正常。

当我仅仅只是将内容修改为http://a.xxx/?tid=1的时候,在5.2.6机子上和5.2.17机子上均表现正常,于是再次将内容格式调试为<a href="http://a.xxx/?tid=1">test</a>,则5.2.6及5.2.17上均表现正常,看来是单引号惹的祸。

相关文章

php curl基本操作详解

cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。它是一个强大的库支持http、https、ftp、telnet、file等协议,同时也支持HTTPS认证、HTTP POS...

php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)

/** * $splitChar 字段分隔符 * $file 数据文件文件名 * $table 数据库表名 * $conn 数据库连接 * $fields 数据对应的列名 * $inse...

迁移PHP版本到PHP7

迁移PHP版本到PHP7

今天看到微博上说phpng也就是php7合并到master上了,大家都知道我是比较喜欢探讨最新版本的东西,看看有什么特性,我就忍不住升级去了,以前我的PHP版本是5.5.19,然后我就开...

PHP实现根据数组某个键值大小进行排序的方法

本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法。分享给大家供大家参考,具体如下: 问题:针对给定数组的某个键的键值进行排序 解决方法: //$a是排序数组,$b是要排序的...

phpmyadmin的#1251问题

mysql> update mysql.user SET Password = OLD_PASSWORD('newpwd...