记录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,再运行时发现问题解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值