我有一个名为events
的表,其中包含 3 个条目:
-------------------------------------
| Name | Description | Image | Date |
-------------------------------------
我正在调用如下所示的PDO查询:
`Connection handled in a class`
$stmt = $DB_con->prepare("SELECT Name, Description, Image, Date FROM events");
$stmt->execute();
$events = array();
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$events = $row;
}
}
稍后在我的代码中,当我调用$events
:
for ($x = 0; $x < count($events); $x++) {
echo $events[$x];
}
但对我来说,回报的只是:
ArrayArrayArray
首先,在while()
循环中查看此语句,
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$events = $row;
^ it should be $events[]
}
在每次迭代中,您将数组分配给$events
,而不是附加它。
其次,当你这样做时echo $events[$x];
它会显示ArrayArrayArray $events[$x]
因为它实际上是一个数组,而不是一个字符串。
所以你的代码应该是这样的:
// your code
$events = array();
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$events[] = $row;
}
}
for ($x = 0; $x < count($events); $x++) {
echo $events[$x]['Name'] . "<br />";
// like that you can do this
// echo $events[$x]['Description'];
// echo $events[$x]['Image'];
// echo $events[$x]['Date'];
}