【发布时间】: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,我不知道如何为这两个答案投票,因为它们都是正确的,还是我就这样离开?