php – Excluding numbered-index elements of PDO::fetchAll()-ThrowExceptions

Exception or error:

$allrows = $pdo->fetchAll(); // select * from ....

I want to transform this $allrows into JSON by doing :

echo (json_encode($allrowl,JSON_PRETTY_PRINT));

My problem is that this fetchAll will not only extracting data as associate array but also indexed array for each element, hence repeating elements.

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

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


Thank you.

How to solve:

That’s becuase the default fetch mode is FETCH_BOTH. CHange your mode to FETCH_ASSOC and you’ll only get the non-numeric keys.

Assuming $pdo is a PDOStatement, set it like this prior to the fetch.


You can also set it in the fetch statement:



Use PDO::FETCH_ASSOC to get only the associated arrays:

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

Leave a Reply

Your email address will not be published. Required fields are marked *