重新安装MediaWiki并重新配置,结果在搜索时和某些页面中出现“Error in "where" parameter: the string "#" cannot be used within #cargo_query.”的错误。
而我之前是正常的:
该扩展的作者之一曾经回复过这个问题,似乎他对此也无能为力,因为这是mysql的设置,为了防止别人在查询时恶意使用“#”符号。
难道说就没有任何办法了吗?而且为什么之前在1.39版中没有任何问题呢?作者回答这个问题也是4年前的事,不像是最近的bug。从仅有的搜索情况来看,这种现象似乎并不普遍,几乎没有任何可供参考的资料。
那就先从图书的查询入手吧,因为出错的那部分是由模板生成的,而模板就是一段Cargo查询语句,在WHERE
部分果然用到了#
符号,当时为了截取图书条目中的部分字段而采用了#explode
解析函数。而这个函数早在2013年就被MediaWiki弃用了,如果坚持启用就必须开启$wgPFEnableStringFunctions = true;
,在本次安装中却没有增加这条配置,因此才会出现上述的情况。
添加后刷新页面,错误倒是消失了,但查询结果还是没有出现,也就是说函数可能已经被系统认同并运行了,但执行后的结果并没有满足查询的条件,看来还是要彻底放弃#explode
函数,官方的策略就是用Lua的方式。
最后修改:2025 年 01 月 02 日
© 允许规范转载