记录xmapp升级过程中解决mysql扩展中出现的问题
记录xmapp升级过程中解决mysql扩展中出现的问题
一个开发时间比较久远的项目,线上的运行环境是xmapp5.6的版本,使用的php、maraiDB的版本也是老版本,在对代码审计的时候发现一些语法存在风险。于是项目方要求对系统进行升级。
那么,问题来了。由于代码开发的时间比较久远了,所以代码中还大量存在着mysql的查询语法,要对系统进行升级的话,php7以后就已经放弃了使用mysql的扩展。而系统升级的话还需要升级到版本7以上,由于代码中的mysql语法使用的地方非常多,整体变动的话更改的时间肯定会比较长。还比较容易出现问题。因此在网上大量搜索解决办法,查到php7以上可以安装mysql扩展来解决老版本的兼容问题。
因此,决定将xmapp升级到7.2稳定版本。
升级的过程还算比较顺利,升级完成后安装mysql扩展。安装完成后测试项目代码,还算幸运,并没有出现很多的问题。但是在项目代码运行两天后,问题出现了。在mysql_result($result, $i, $field)方法中获取指定字段的时候一直会出现获取不到指定字段的问题,项目之前运行的过程中并没有出现过类似的情况。然后就各种百度搜索问题。好吧,搜索的结果基本上没有类似的问题。所以也没找到相应的解决方法。但是又不想改动老项目中的代码,因为有很多地方都用了这种方法,改动起来实在是太麻烦了。而且一不小心可能还会造成其他的问题。
分析问题,这个问题是升级过后出现的问题。问题肯定是升级后系统或者是安装的mysql扩展包的问题,没办法,先看下mysql扩展包的源码吧。在排查的过程中果然发现了问题,在mysql_result()方法中有一个判断条件写的不严谨,导致了在查找字段值的时候出现了问题。
判断方法在数据集中如果存在xx和xx_xx…字段时,在使用mysql_result()方法获取xx_xx…字段值的时候会变成xx的字段值。原来是这的问题,那就改下判断条件,重新编译下试下是不是这的问题吧。完善判断条件并重新编译后重启php,再运行时发现问题解决。
记录xmapp升级过程中解决mysql扩展中出现的问题相关推荐
- linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...
linux中解决mysql中文乱码方法 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /v ...
- mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...
如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...
- echarts导入mysql数据库_Echarts最新:Django中从mysql数据库中获取数据传到echarts方式_爱安网 LoveAn.com...
关于"Echarts"的最新内容 聚合阅读 这篇文章主要介绍了基于vue+echarts 数据可视化大屏展示的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...
- python echarts mysql python_Django中从mysql数据库中获取数据传到echarts方式
尝试了几种方法,感觉过于复杂,于是自己写了一个方法. (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现: (2)然后是页面加载完成时执行的函数ready,调用方法f; ( ...
- python django mysql结果获取_Django中从mysql数据库中获取数据传到echarts方式
尝试了几种方法,感觉过于复杂,于是自己写了一个方法. (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现: (2)然后是页面加载完成时执行的函数ready,调用方法f; ( ...
- IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat)
IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat) 参考文章: (1)IDEA中解决Edit Configurations中没有tom ...
- mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...
[单选题]在MySQL中,选择数据库的命令是( ) [单选题]开启mysqli扩展的配置语句是( ). [单选题]19世纪美国杰出的浪漫主义小说家麦尔维尔的代表作是 [单选题]卤素灯检漏时,发现管子大 ...
- mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...
- 爬虫中 解决请求头中 encSecKey:6f112 SyntaxError: invalid syntax 问题
最近在学习爬虫中总是遇到下面的问题,后来发现是两条语句之间没有加逗号,直接在网页复制(习惯不好)的问题 问题如下: 解决请求头中 "encSecKey":"6f112a1 ...
- linux中mysql不显示中文_linux中解决mysql中文乱码方法
改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /var/lib/mysql/ 放置的是数据 ...
最新文章
- 数据结构与算法(6-4)线索二叉树
- linux下网卡状态,linux-网络状态
- python可视化脉搏和血氧数据并通过阈值动态调整、动态可视化异常值
- [转] 如何从多份Java/JEE工作中进行抉择
- linux 分析 进程cpu占用过高
- 每日程序C语言17-打印出好看的菱形
- 远程仓库---添加远程库
- Codeforces 746 G. New Roads
- leaf 叶子(张量)
- 实现线段切割法_切割晶圆及玻璃产品的现代技术与设备
- (8)css常用样式属性3
- 做了3年Excel报表,换了这个报表神器后,不禁感叹:国产真香
- matlab字体设置
- jsp标签使用技巧整理
- Linux OS共享文件
- python基础--面向对象初始
- java的dequeue_$.queue() 与 $.dequeue() -- 队列
- java 分页读取数据
- 30岁了还可以学java吗_30岁还能零基础学Java吗?
- 图形验证码文字识别——pytesseract