【问题标题】:PDO FetchAll from mysql echo data in tablePDO FetchAll来自表中的mysql回显数据
【发布时间】:2015-07-18 01:43:21
【问题描述】:

使用 PHP 开发 Highscore 系统。要从 MySQL 数据库中获取数据,我使用此代码。

<?php
$sql_query = "SELECT id,name, exp FROM user ORDER by exp DESC";
try {
    $conn = new PDO('mysql:host=localhost;dbname=game', 'root', 'pass');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $rst = $conn->query($sql_query);
    $users= $rst->fetchAll(PDO::FETCH_OBJ);
    echo '' . json_encode($users) . '';
}
catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}';
}
?>

该代码的输出如下所示:

[{"id":"1","name":"Player","exp":"22060"}

我需要分别在标签中回显该数据。例如。

<td><?php echo $users->name ?></td>
<td><?php echo $users->exp ?></td>

【问题讨论】:

  • 旁注:我的印象是你们在重复投票中选择了错误的“原始”问题;-)
  • @Volkerk 再次查看他们的代码,您的评论说得很好:)我刚刚撤回了我的投票
  • 哎呀,我明白你在说什么@VolkerK

标签: php mysql


【解决方案1】:

这应该可以解决问题:

<?php
$sql_query = "SELECT id,name, exp FROM user ORDER by exp DESC";
try {
    $conn = new PDO('mysql:host=localhost;dbname=game', 'root', 'pass');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $rst = $conn->query($sql_query);
    $users= $rst->fetchAll(PDO::FETCH_OBJ);

    foreach($users as $user) {
        echo "<td>{$user->name}</td>";
        echo "<td>{$user->exp}</td>";
    }
}
catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}';
}
?>

【讨论】:

  • 为什么将循环放在try 中可以做到这一点?
  • 像魅力一样工作。谢谢。
  • @JayBlanchard 它不能让它工作,它只是让你在 php 停止运行之前捕获异常!查看此链接:w3schools.com/php/php_exception.asp
  • 您实际上可以捕获异常并优雅地处理它们,而无需将显示代码放入try
猜你喜欢
  • 2020-01-28
  • 2012-06-23
  • 1970-01-01
  • 2014-02-02
  • 2016-07-06
  • 2020-05-04
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
相关资源
最近更新 更多