【发布时间】:2014-03-18 09:53:28
【问题描述】:
我在mysql数据库中有一些数据。数据库每次都包含不同数量的行。
我的表的一个例子是:
id team1 team2 home away tip
----------------------------------
12 xxx yyy zzz kkk
43 xxx yyy zzz kkk
. . . . .
. . . . .
所以我需要做的是循环遍历表格的每一行,并能够从该行获取数据,这样我就可以创建提示。
我对如何使用 pdo 做到这一点有点困惑。
到目前为止,我尝试的是尝试获取这样的一列数据:
$stmt = $db->prepare("SELECT id FROM tablename");
$stmt->execute();
$result=$stmt->fetchColumn();
echo $result[0];
但即便如此,我希望将第一个 id 还给我,在这种情况下为 12,只会返回 1。这里有什么想法吗?
【问题讨论】:
-
echo $result[0];返回标量$result的第一个字符,因为您使用->fetchColumn仅获取 1 列,而不是整行。所以,要么echo $result,要么使用$result=$stmt->fetch();。目前,正在发生的事情可以与此进行比较:$result="12"; echo $result[0];(正如您可以测试的那样,确实与'1'相呼应。 -
$result = $stmt->fetch(PDO::FETCH_ASSOC); if($result){echo $result['id'];}应该可以工作。$result将是布尔值 FALSE 或数组,因此简单的检查将避免不希望的错误 -
@wrikken,当我使用 $result=$stmt->fetch();确实有效。但是当我尝试回显 $result[1] 时给了我一个错误。如何获取数组中的所有列,以便循环遍历结果?
-
如果你
SELECT id FROM tablename,你只有有一列,所以$result[1]确实不会被设置。更改您的查询以返回其他列,它们将出现在$result。