destoon 多表联合查询时出现解析错误,parse_str函数解析错误

Posted djiz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了destoon 多表联合查询时出现解析错误,parse_str函数解析错误相关的知识,希望对你有一定的参考价值。

数据库前缀  wb_

 

标签 ,调用文章时获取评论数量

 <!--{php $tags=tag("table=article_24 a left join wb_comment_stat c on c.itemid=a.itemid&condition=status>2 and level=1&pagesize=3&order=hits desc&template=null");}-->

 

出现结果 sql语句 SELECT * FROM wb_article_24 a left join wb WHERE status>2 and level=1 ORDER BY hits desc LIMIT 0,3

include/tag.func.php  中调试

在parse_str函数前后分别输出 $parameter  print_r($par); 

 

echo $parameter."<br>";   

parse_str($parameter, $par);

print_r($par);        

             

$parameter结果: 

table=article_24 a left join wb_comment_stat c on c.itemid=a.itemid&condition=status>2 and level=1&pagesize=3&order=hits desc&template=null     这里正常

 

print_r($par);的结果

 

Array (    [table] => article_24 a left join wb    [#95;comment_stat_c_on_c_itemid] => a.itemid    [condition] => status>2 and level=1    [pagesize] => 3    [order] => hits desc    [template] => null )

可以看出 print_r 函数把 wb_ 后的_编码成了&#95; 然后解析成了两个变量。为什么会这样????

 

解决方案,把wb_换成destoon_后解析正常,所以 在标签里用destoon_ 然后再parse_str后 获取到$table 后 替换成wb_

 

 

    <!--{php $tags=tag("table=article_24 a left join destoon_comment_stat c on c.itemid=a.itemid&condition=status>2 and level=1&pagesize=3&order=hits desc&template=null");}-->

 

然后再tag.func.php 大概100行  $table = str_replace(‘&#95;‘, ‘_‘, $table); 之后加入

$table = str_replace(‘destoon_‘, $prefix, $table);  //解决烦人的wb_问题,前缀是wb时 parse_str解析有问题, 

以上是关于destoon 多表联合查询时出现解析错误,parse_str函数解析错误的主要内容,如果未能解决你的问题,请参考以下文章

解决 graphql 查询中的联合结果时出现意外的 *Missing Field* 错误(Vue Apollo 客户端)

访问 Google Sheets 联合表时出现 BigQuery 凭据问题

我通过perl更新查询时出现解析错误

运行查询时出现 BigQuery 错误“解析从位置开始的行时检测到错误:219019。错误:缺少右双引号 (”) 字符

MyBatis中实现多表查询

mysql多表联合查询 [Err] 1055