PDO版本问题 Invalid parameter number: no parameters were bound
今天在处理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上均表现正常,看来是单引号惹的祸。
相关推荐
-
PDO版本问题 Invalid parameter number: no parameters were bound
今天在处理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)做测试,果然重现该问
-
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
介绍 今天发现php5.1.*和php5.2.*在数据库预编译代码执行的时候出现差异. 预编译优点 1.使用占位符,避免逐字输入数据到SQL中.自动处理引号和反斜线等字符的转义--增加安全性. 2.预先"准备"一条语句,然后在每次执行时绑定不同值达到重用的目的.--常用于以后被多次执行的语句. 3.可读性强. 代码 数据库连接代码都一样. 复制代码 代码如下: $protol = 'mysql:host=localhost;dbname=test'; $username = 'mont
-
dos中一些常用命令的errorlevel返回值
ATTRIB.EXE(a) Target file/folder not found = ERRORLEVEL 1(b) Invalid switch = ERRORLEVEL 1(c) Sharing violation (target file in use) = ERRORLEVEL 1(d) Invalid drive specification
-
Mabatis错误提示Parameter index out of range的处理方法
这个问题把小编急毁了,捣腾了好几天还没有结果出来,今天终于捣腾出来了,下面小编把经过分享给大家,大家多多提出宝贵意见. 错误信息如下 08:34:43,302 DEBUG getTeachers:139 - ==> Preparing: SELECT a.*,b.classId,b.className FROM TeacherInfo a INNER JOIN ClassInfo b ON a.teacherId=b.teacherId 08:34:43,316 DEBUG NewPooledC
-
Android手电筒兼容各个手机与版本
在写手电筒APP之前,当然已经参考market上的很多手电筒APP,还有网上如何实现手电筒功能的各种源码.不管是源码还是market上的APP,总结了几点的问题. 1.我下载market上的所有手电筒APP都是通过Camera打开闪光灯的方式来实现的,但是大部分APP在打开Camera时没有进行异常处理工作,也没有任何的提示,如果当其他的程序在使用Camera时,并且返回或点Home后没有释放Camera,这时在启动相应的手电筒APP就会出现崩溃或者手电筒功能已经失效,这种用户体验用户是不能接受
-
PHP用PDO如何封装简单易用的DB类详解
前言 PDO扩展为PHP访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据.PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用. 我个人理解:PDO是一个抽象类,为我们提供访问数据的接口方法,下面这篇将给大家介绍关于PHP如何利用PDO封装简单易用的DB类,下面话不多说,来一起看看详细的介绍: 使用 创建测试库和表 create database db_test; CREATE TABLE `u
-
Zend Framework入门教程之Zend_Db数据库操作详解
本文实例讲述了Zend Framework中Zend_Db数据库操作方法.分享给大家供大家参考,具体如下: 引言:Zend操作数据库通过Zend_Db_Adapter 它可以连接多种数据库,可以是DB2数据库.MySQli数据库.Oracle数据库.等等. 只需要配置相应的参数就可以了. 下面通过案例来展示一下其连接数据库的过程. 连接mysql数据库 代码: <?php require_once 'Zend/Db.php'; $params = array('host'=>'127.0.0.
-
Spring/Spring Boot 中优雅地做参数校验拒绝 if/else 参数校验
数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些 HTTP 工具直接向后端请求一些违法数据. 最普通的做法就像下面这样.我们通过 if/else 语句对请求的每一个参数一一校验. @RestController @RequestMapping("/api/person") public class PersonController { @PostMapping public ResponseEnti
-
PHP 7.0.2 正式版发布
七年以来,PHP一直是第四大最流行的编程语言,驱动全球超过2亿多个网站,全球超过81.7%的公共网站在服务器端采用PHP.PHP在这个星期有了自2004年以来最大的飞跃,因为PHP 7已经发布. PHP 7最大特色是极大地改进了性能,在一些WordPress基准测试当中,性能可以达到PHP 5.6的3倍. 下载地址: PHP 7.0.2 Final for Windows 32-bit (14.59 MB) PHP 7.0.2 Final for Windows 64-bit (14.59 MB
-
C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)
本文实例讲述了C#操作SQLite数据库方法.分享给大家供大家参考,具体如下: SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQ
随机推荐
- 在MySQL中使用mysqlbinlog flashback的简单教程
- 浅谈angular4 ng-content 中隐藏的内容
- 妙用VBScript自制IE工具栏按钮的代码
- vbs教程 chm下载
- iOS中使用UIDatePicker制作时间选择器的实例教程
- python实现支持目录FTP上传下载文件的方法
- ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法
- 微信语音上传 下载功能实例代码
- Android中ListView下拉刷新的实现方法实例分析
- PHP中的日期及时间
- 对Python新手编程过程中如何规避一些常见问题的建议
- iOS开发之UIKeyboardTypeNumberPad数字键盘自定义按键
- 详解vue的数据binding绑定原理
- 如何在Web页面上直接打开、编辑、创建Office文档
- C/C++如何获取当前系统时间的实例详解
- IO 使用说明介绍
- 解决C#程序只允许运行一个实例的几种方法详解
- 关注Ionic底部导航按钮tabs在android情况下浮在上面的处理
- C语言memset函数使用方法详解
- C#使用SqlDataAdapter对象获取数据的方法