记录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扩展中出现的问题相关推荐

  1. linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...

    linux中解决mysql中文乱码方法 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /v ...

  2. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...

    如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...

  3. echarts导入mysql数据库_Echarts最新:Django中从mysql数据库中获取数据传到echarts方式_爱安网 LoveAn.com...

    关于"Echarts"的最新内容 聚合阅读 这篇文章主要介绍了基于vue+echarts 数据可视化大屏展示的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...

  4. python echarts mysql python_Django中从mysql数据库中获取数据传到echarts方式

    尝试了几种方法,感觉过于复杂,于是自己写了一个方法. (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现: (2)然后是页面加载完成时执行的函数ready,调用方法f; ( ...

  5. python django mysql结果获取_Django中从mysql数据库中获取数据传到echarts方式

    尝试了几种方法,感觉过于复杂,于是自己写了一个方法. (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现: (2)然后是页面加载完成时执行的函数ready,调用方法f; ( ...

  6. IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat)

    IDEA中解决Edit Configurations中没有tomcat Server选项的问题(附配置Tomcat) 参考文章: (1)IDEA中解决Edit Configurations中没有tom ...

  7. mysql扩展中如何处理结果集_请写出PHP处理结果集的5个函数(使用mysql扩展)_学小易找答案...

    [单选题]在MySQL中,选择数据库的命令是( ) [单选题]开启mysqli扩展的配置语句是( ). [单选题]19世纪美国杰出的浪漫主义小说家麦尔维尔的代表作是 [单选题]卤素灯检漏时,发现管子大 ...

  8. mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?

    我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...

  9. 爬虫中 解决请求头中 encSecKey:6f112 SyntaxError: invalid syntax 问题

    最近在学习爬虫中总是遇到下面的问题,后来发现是两条语句之间没有加逗号,直接在网页复制(习惯不好)的问题 问题如下: 解决请求头中 "encSecKey":"6f112a1 ...

  10. linux中mysql不显示中文_linux中解决mysql中文乱码方法

    改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /var/lib/mysql/ 放置的是数据 ...

最新文章

  1. 数据结构与算法(6-4)线索二叉树
  2. linux下网卡状态,linux-网络状态
  3. python可视化脉搏和血氧数据并通过阈值动态调整、动态可视化异常值
  4. [转] 如何从多份Java/JEE工作中进行抉择
  5. linux 分析 进程cpu占用过高
  6. 每日程序C语言17-打印出好看的菱形
  7. 远程仓库---添加远程库
  8. Codeforces 746 G. New Roads
  9. leaf 叶子(张量)
  10. 实现线段切割法_切割晶圆及玻璃产品的现代技术与设备
  11. (8)css常用样式属性3
  12. 做了3年Excel报表,换了这个报表神器后,不禁感叹:国产真香
  13. matlab字体设置
  14. jsp标签使用技巧整理
  15. Linux OS共享文件
  16. python基础--面向对象初始
  17. java的dequeue_$.queue() 与 $.dequeue() -- 队列
  18. java 分页读取数据
  19. 30岁了还可以学java吗_30岁还能零基础学Java吗?
  20. 图形验证码文字识别——pytesseract

热门文章

  1. powerDesign导出数据库表结构
  2. css让div背景变成半透明
  3. 十六进制转二进制(转)
  4. flac怎样转换成mp3格式
  5. JRE和JDK的区别是什么?
  6. 美国人口普查数据预测收入sklearn算法汇总2: 特征编码, 特征选择, 降维, 递归特征消除
  7. 中职计算机组装与维修知识点,中职计算机组装与维修的教学分析与对策
  8. RGB 256颜色表代码表
  9. 汇编语言--常用DOS功能
  10. 颜色的前世今生6·色相环