因为标题说我在尝试显示我的sql查询中的5个结果时遇到问题我不知道如何将它们转换为数组,
# Collection of SQL
try {
$sql = $conn->query("SELECT Channel_Location FROM channels
ORDER BY RAND()
Limit 5");
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $c) {
echo $c . "<br>";
}
$conn = null;
我无法弄清楚如何显示结果,如果我将foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $c) {
更改为foreach($sql->fetch(PDO::FETCH_ASSOC) as $c) {
,我会显示一个结果,但我需要它来显示每个结果
答案 0 :(得分:2)
$sql = "SELECT Channel_Location FROM channels ORDER BY RAND() Limit 5";
$channels = $conn->query($sql)->fetchAll(PDO::FETCH_COLUMN);
foreach($channels as $c) {
echo $c . "<br>";
}
您的主要问题是您正在尝试使用一个不知道其类型的变量。它同时适用于$ sql(也称为错误名称)和fetchAll结果。您应该事先知道变量类型,无论是手动还是快速测试。 $ sql不包含SQL字符串,您无法回显它。 fetchAll结果包含一个嵌套数组,意味着当你迭代它时,你仍然有一个数组作为项目,你也不能直接回显。要测试变量并查看是否可以回显变量,请始终使用var_dump()
以防万一。
解决所有必须解决的问题