0

我在 $result 中有一个 SQL 查询的结果,

$result = $query->fetchall((PDO::FETCH_ASSOC));

在 var 转储上看起来像这样:

  array(7) {
    ["index"]=>
    string(2) "59"
    ["user_id"]=>
    string(32) "154FA6BFDFAA3B283452E84DCC41AF1D"
    ["trigger_price"]=>
    string(2) "33"
    ["currency"]=>
    string(1) "$"
    ["direction"]=>
    string(1) ">"
    ["title"]=>
    string(1) "T"
    ["date_set"]=>
    string(19) "2013-10-09 07:21:17"
  }

然后,当我尝试循环访问结果集中的元素时,没有打印任何内容。我正在使用这段代码:

while ($row = mysql_fetch_array($result) )
{
    echo $row["title"];
}

我在 PHP 中发现了如此多的绊脚石,这让我发疯了,就像有 10 种方法可以做所有事情,但其中只有一种似乎永远有效!

我正在使用 MAMP,所以语法可能略有不同,对任何可以提供帮助的人的正确答案。

我也试过:

    while ($row = mysql_fetch_array($result, MYSQL_NUM))

和:

while ($row = mysql_fetch_row($result)){
    echo $row;
}
4

1 回答 1

2

使用后,PDOStatement::fetchAll()您可以使用简单的 foreach 遍历数组:

foreach($result as $row)
{
    echo $row["title"];
}

PDOStatement::fetchAll()或者,您可以使用代替 using PDOStatement::fetch(),这大致相当于mysql_fetch_array()

while ($row = $query->fetch(PDO::FETCH_ASSOC))
{
    echo $row["title"];
}

这些mysql_*功能不能与 PDO 互换,它们已被弃用和劝阻。

于 2013-10-09T07:17:12.633 回答