2016-06-22 3 views
2

$allrows = $pdo->fetchAll(); // select * from ....PDOの番号をインデックス要素を除く:: fetchAllの()

私がやっによってJSONにこの$allrowsを変換したい:

echo (json_encode($allrowl,JSON_PRETTY_PRINT));

を私の問題があることですこのfetchAllは、データを抽出するだけでなく、アソシエート配列だけでなく、インデックス付き配列(各要素、したがって繰り返し要素)。

[ 
    { 
     "org_id": "1", 
     "0": "1", 
     "category": "A", 
     "1": "A", 

    }, 
    { 
     "org_id": "2", 
     "0": "2", 
     "category": "A", 
     "1": "A", 

    } 
] 

ありがとうございます。

+2

はあなたが必要とする[ 'PDO :: FETCH_ASSOC']( https://phpdelusions.net/pdo/fetch_modes#FETCH_ASSOC)モード。 PDOStatement :: fetchAll()パラメータとして設定することもできますし、デフォルトのモードとして一度設定することもできます。これは、接続オプションとして非常に便利です。 –

+0

男性、何時間も無駄にしてくれてありがとう –

答えて

3

デフォルトのフェッチモードがFETCH_BOTHであるためです。モードをFETCH_ASSOCに変更すると、数字以外のキーのみが表示されます。

$pdoPDOStatementであると仮定すると、フェッチ前にこのように設定します。

$pdo->setFetchMode(PDO::FETCH_ASSOC); 

また、fetch文でそれを設定することができます。

$pdo->fetchAll(PDO::FETCH_ASSOC); 
+0

ワー、ありがとうRay、私はこれを達成するために多くのループ操作をしてきました。 –

2

使用PDO::FETCH_ASSOCをのみ、関連する配列を取得するには:

$allrows = $pdo->fetchAll(PDO::FETCH_ASSOC); 
+0

woah aynberありがとう、私はこれを達成するためにループの操作をたくさんやってきました。@レイは最初に答えましたが、私はあなたにupvoteを与えました。 –

+0

PDOクラスにはfetchAll()メソッドはありません。したがって、このコードは動作しません。 –

+3

@YourCommonSense http://php.net/manual/en/pdostatement.fetchall.php '$ pdo'変数が' PDOStatement'であると仮定します – Ray

関連する問題