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 の方法があるようですが、そのうちの 1 つだけが機能するようです!!

私は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()できますPDOStatement::fetch()。これは、 とほぼ同等ですmysql_fetch_array()

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

mysql_*関数は PDO と交換できず、推奨されておらず、推奨されていません。

于 2013-10-09T07:17:12.633 に答える