I've issue in PDO
using fetchAll()
method .
when execute the results showing array of objects its fine , but each object has duplicate keys for example :
$catid = intval( $api->param['catid'] );
$json = array();
$prepar = "SELECT * FROM " . DB_PREFIX . "cat_sub WHERE `catid` = :catid ORDER BY `orderid` asc";
try{
$q = $api->pdo->prepare($prepar);
$q->bindparam(":catid" , $catid , PDO::PARAM_INT);
$q->execute();
$json = $q->fetchAll();
}catch( PDOException $e ){
$api->showError = $e->getMessage();
}
echo json_encode($json);
exit();
the output of each object is
{
"subcatid":"6",
"0":"6",
"title":"coool ",
"1":"coool ",
"catid":"2",
"2":"2",
"orderid":"1",
"3":"1"
},
and its should be
{
"subcatid":"6",
"title":"coool ",
"catid":"2",
"orderid":"1",
},
any advice how to do this without loop or foreach :)
You have to specify fetching mode
$q->fetchAll(PDO::FETCH_ASSOC);
Please specify the Mode of fetching
Change
$json = $q->fetchAll();
to
$q->fetchAll(PDO::FETCH_ASSOC);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With