PHP变量类型转换的问题

时间:2014-08-08 18:13:20

标签: php mysql bbpress

我使用以下代码在bbPress搜索结果中显示任何与标签相关的主题。

<?php
$x = esc_attr( bbp_get_search_terms() );
$y = (string) $x;
$query = "SELECT * FROM wp_terms WHERE name=$y";
$tag=$wpdb->get_row($query);
echo $y;
$z= (int) $tag->term_id;
echo do_shortcode("[bbp-single-tag id=$z]");
?>

它无法正常工作“echo $ y”打印“分析”。如果我在查询中使用实际搜索词“analytics”而不是$ y,一切正常。像

<?php
$x = esc_attr( bbp_get_search_terms() );
$y = (string) $x;
$query = "SELECT * FROM wp_terms WHERE name='analytics'";
$tag=$wpdb->get_row($query);
echo $y;
$z= (int) $tag->term_id;
echo do_shortcode("[bbp-single-tag id=$z]");
?>

name列在Database中是varchar类型。这里有什么错误。

2 个答案:

答案 0 :(得分:1)

我不确定这是否是您的要求,但尝试在变量周围添加引号

"SELECT * FROM wp_terms WHERE name='$y'";
                                   ^  ^

答案 1 :(得分:0)

您在do_shortcode参数中使用单引号...整个事物被解释为字符串。使用双引号,变量将被插值。

echo do_shortcode("[bbp-single-tag id=$z]");