韩林涛老师:译者编程知识30天×300字写作计划 | Day 24

今天分享一个自己花了一年才找到的代码Bug:

大概是2018年的时候我做了一个网站,叫“翻译技术教学与研究资源库”,将核心期刊中我搜集到的与翻译技术教学和研究相关的论文收集到一起,方便我自己写论文时检索查询。地址是这个:

http://translation.education/knowledge

但是去年某个时候这个网站突然就不能查询了,网站还可以打开,但所有的数据都找不到了。我赶忙联系客服,告诉他我的数据都不见了,客服回复我说数据都还在(这件事情也让我知道原来虚拟机服务提供商竟然是可以看到我的网站里的所有数据的,真是一件可怕的事情)。

虽然客服说我的数据还在,但是我的代码并没有改动过,所以我认为不是代码的问题,只是我的数据因为某种原因而消失的,搞得我一度非常沮丧,因为这个网站中有我收录的几百篇论文,我还为了方便查找论文专门开发了自动录入论文信息的功能和论文上传下载的功能。

最近我准备将2020年各个核心期刊的翻译技术类文章再全部梳理一遍,连同之前自己备份的数据重新上传一遍,计划投入100个小时完成此事。但是我还是想再试一试,看看是不是代码的问题。

结果我将代码下载下来仔细一看,原来是代码中少了一个"I":

MYSQLI_ASSOC,我写成了MYSQL_ASSOC。

大家如果看教材的话,会知道这是教材中的一个小知识点。以前PHP支持使用MySQL函数来操作数据库,但后来升级后改成了MySQLi,这里的i就是improved的意思,但不光这里需要添加一个i,许多代码都要添加这个i。

我就是因为在写代码时没有添加,导致虚拟机供应商升级了他们的服务后我的代码运行失败。

也就是说,在他们升级前,我不加i也没有关系,但是升级后系统对PHP代码的要求更严格了,我自己又没有顾及到这点,就出现长达一年的网站不能使用的情况。

好在现在我发现了这个错误,并及时修正了bug,现在网站又可以正常访问了,我也可以继续去查询这些论文了。

通过这件事情,我学到了很多......很多......

作者:韩林涛,北京语言大学高级翻译学院教师,《译者编程入门指南》作者