【问题标题】:PHP - PDO echo $array['name']; is not workingPHP - PDO 回显 $array['name'];不管用
【发布时间】:2016-05-14 11:15:44
【问题描述】:

我无法从我的数组中回显关联值。

这是我的 PHP 代码:

<?php
    $servername = "my host name";
    $username = "my username";
    $password = "my password";
    $database = "my database";
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("SELECT Street, Number, City, Country FROM extralocal");
        $stmt->execute();
    } catch (PDOException $e) {
        echo $sql . "<br>" . $e->getMessage();
    }
    $conn = null;
?>
<?php
    $places = array();
    while ($place = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
        $places[] = $place;
    }
    foreach ($places as $place) {
        echo $places['Street'];
        echo $places['Number'];
        echo $places['City'];
        echo $places['Country'];

    } 
?>

由于某种原因,当我 echo foreach 循环中 array 中的每个值时,加载的页面上什么都没有显示,甚至没有错误。但是,如果我 var_dump array 我可以看到值在那里,所以我假设数据库连接工作正常并且正确获得了值。只是具体数值我无法回显。

任何帮助将不胜感激。 提前致谢!

【问题讨论】:

  • 替换 $places['Street'];由 $place['Street'];
  • @Poria,没什么,同样的结果。没有错误。
  • 您想在 while 循环中使用 fetch 而不是 fetchAll。否则,您会将所有结果存储在一个子数组中!
  • @Poria,实际上您的建议也是正确的,因为使用 $places 而不是 $place 是不正确的。再次感谢。
  • @Rizier123,我不知道如何为这两个答案投票,因为它们都是正确的,还是我就这样离开?

标签: php mysql arrays pdo echo


【解决方案1】:
foreach ($places as $place) {
    echo $places['Street'];
    echo $places['Number'];
    echo $places['City'];
    echo $places['Country'];
}

替换为

foreach ($places as $place) {
    echo $place['Street'];
    echo $place['Number'];
    echo $place['City'];
    echo $place['Country'];

} 

在你的 while 循环中使用 fetch 而不是 fetchAll 希望能解决你的问题

【讨论】:

  • 感谢您的反馈,但不幸的是它没有工作:(
  • 好的,在我按照 cmets 中的@Rizier123 建议解决了问题后,我还发现这是我的代码中的另一个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2016-07-23
  • 2013-06-26
  • 2020-01-12
  • 1970-01-01
  • 2018-08-16
  • 2016-06-22
  • 2015-07-14
相关资源
最近更新 更多