我在 $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;
}
最佳答案
使用 PDOStatement::fetchAll()
后,您可以使用简单的 foreach 迭代数组:
foreach($result as $row)
{
echo $row["title"];
}
或者,您可以使用 PDOStatement::fetch()
,而不是使用 PDOStatement::fetchAll()
,它大致相当于 mysql_fetch_array()
:
while ($row = $query->fetch(PDO::FETCH_ASSOC))
{
echo $row["title"];
}
mysql_*
函数不能与 PDO 互换,并且已被弃用和不鼓励。
关于php - mysql_fetch_array,似乎没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265255/