I want to show this MySQL table data in JSON object format with _key column as key and _value column as value.
How can I do this with PDO in PHP?
I tried like this:
$info_arr = array(); while ($row = $result->fetch(PDO::FETCH_ASSOC)) $info_arr[] = $row; echo json_encode($info_arr);
But this gives me like this:
[ { "_key": "app_name", "_value": "Mathology" }, { "_key": "app_package", "_value": "com.shovon.mathology" }, { "_key": "app_version", "_value": "1.0" }, { "_key": "app_icon", "_value": "com.shovon.mathology" } ]
But I want to get result like this:
[ { "app_name": "Mathology", "app_package": "com.shovon.mathology", "app_version": "1.0", "app_icon": "com.shovon.mathology" } ]
Advertisement
Answer
echo json_encode($result->fetchAll(PDO::FETCH_KEY_PAIR));
Output:
{ "app_name": "Mathology", "app_package": "com.shovon.mathology", "app_version": "1.0", "app_icon": "com.shovon.mathology" }
I don’t know why would you want to put a single object in a JSON array. My solution outputs just the object. If you want to wrap it in an array then just put it inside of []
before sending to json_encode()
echo json_encode([$result->fetchAll(PDO::FETCH_KEY_PAIR)]);