如何从查询生成的数组中正确获取数据

How to Correctly Fetch Data From Query Generated Array

我通常对执行后从查询中获取数据的正确方法感到困惑。我的最终目标是能够显示所有记录的列表,但我不确定该怎么做。我尝试了几种不同的方法,但 none 已经完全满足了我的需求。例如,当我搜索蝙蝠侠时(应该有 [Batman, 500, 1993] 的记录和 [Batman, 499, 1993] 的记录)这是我尝试过的:

$search->execute();

$result = $search->fetch(PDO::FETCH_ASSOC);
print_r($result);

这给了我:Array ( [comicTitle] => Batman [comicIssue] => 500 [releaseDate] => 1993 )

这或多或少是我正在寻找的格式,只是它只是一条记录而不是所有记录。

$search->execute();

$result = $search->fetchAll(PDO::FETCH_ASSOC);
print_r($result);

这给了我:Array ( [0] => Array ( [comicTitle] => Batman [comicIssue] => 500 [releaseDate] => 1993 ) [1] => Array ( [comicTitle] => Batman [comicIssue] => 499 [releaseDate] => 1993 ) )

$search->execute();

$result = $search->fetch(PDO::FETCH_ASSOC);
foreach($result as $row) {
        echo $row['comicTitle']."<BR>";
        echo $row['comicIssue']."<BR>";
        echo $row['releaseDate']."<BR>";

这会回显 3 个 B、3 个 5 和 3 个 1,每个之间都有非法字符串偏移警告。

所以如果我想回显一行

"Title: " . $whatevertitle . " Issue: " . $whateverissue . " Release: " $whateverelease

对于找到的每条记录,我如何才能真正从返回的数组中获取这些值?

使用->fetch(PDO::FETCH_ASSOC)

$search->execute();

while($row = $search->fetch(PDO::FETCH_ASSOC)){
        echo "Title: " . $row['comicTitle']."<BR>";
        echo "Issue: " . $row['comicIssue']."<BR>";
        echo "Release: " . $row['releaseDate']."<BR>";
}

使用->fetchAll(PDO::FETCH_ASSOC)

$search->execute();

$result = $search->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row) {
        echo "Title: " . $row['comicTitle']."<BR>";
        echo "Issue: " . $row['comicIssue']."<BR>";
        echo "Release: " . $row['releaseDate']."<BR>";
}