mysql_fetch_array,似乎没有返回值

时间:2013-10-09 07:04:11

标签: php mysql mamp

我在$ 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;
}

1 个答案:

答案 0 :(得分:2)

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

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

或者,您可以使用PDOStatement::fetchAll()而不是PDOStatement::fetch(),这大致相当于mysql_fetch_array()

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

mysql_*函数不能与PDO互换,并且不推荐使用它们。