如何使用PHP将对象转换为字符串

时间:2014-10-28 22:04:17

标签: php mysql

我正在使用PHP和MySQL创建一个Web应用程序。

<button type="button" class="btn btn-primary btn-lg btn-block" id="buttony">All</button>
              <button type="button" class="btn btn-default" id="buttony1">Strength</button>
              <button type="button" class="btn btn-default" id="buttony2">Agility</button>
             <?php echo "<a href='heroes/" . get_intelligence_hero($name) . ".html'" . "<button type='button' class='btn btn-default' id='buttony3'>Intelligence</button>"; ?>

使用PHP它会从数据库中接收一个随机行,然后当你点击它时,它会将你带到那一行自己的html页面(这是一个名为DOTA2的游戏。你点击英雄的属性和它将为您随机选择一个英雄并将其带到网页上。

function get_intelligence_hero($name){
    global $con;
    $result = mysqli_query($con, "SELECT name FROM heroes WHERE attribute = 'intelligence' ORDER BY RAND() LIMIT 1");
    if(!$result) {
        die(mysqli_error($con));
    }
    $hero = serialize((mysqli_fetch_object($result)));

    echo $hero;
}

如果他是基于Intelligence属性的话,这是我检索该英雄的函数。我使用序列化来查看它是否会转换为字符串。但它给了我这个结果:

O:8:"stdClass":1:{s:4:"name";s:6:"Dazzle";}

所以它确实将行转换为字符串以及检索英雄。我怎么得到行?例如,我如何才能获得&#34; Dazzle&#34;它返回的所有文本中都有吗?

1 个答案:

答案 0 :(得分:0)

只需获取所需的列:

...
$hero_object = mysqli_fetch_object($result);
$hero_name = $hero_object->name;

return $hero_name;

请注意,您应该在数据库调用中添加错误处理以捕获空记录集等情况。

另请注意,如果要在url和html输出中使用该变量,则应正确转义它。例如,在你的函数中返回一个值,你可以在你的url中使用:

return urlencode($hero_name);

在这种情况下,您不需要htmlspecialchars(),因为当您使用urlencode()时,html中的所有特殊字符都不会保持未编码状态。